The chances are that you have a four-core system: so one thread running flat out will only ever be able to use a maximum of 25% of your available CPU resources. To increase that and use further cores, you would have to break your task into 4 "chunks" and move each chunk to a separate thread. See the
BackgroundWorker Class[
^] for a simple way to do this.