3
Reply

MultiThreading - making use of 100% of cpu?

Darren Scott

Darren Scott

Nov 4 2011 1:43 PM
3.1k
Visual Studio 2008
.net frmaework ver 3.5
windows server 2008
48 amd core processors
32 GB RAm

    I am having problems running my multithreaded application. the application only takes advantage of between 30-40% of my processors capability.  I ran visual studio profiler to try to identify what the problem is. I found there was a lot of contention from mscorwks.dll. This seems to be responsable for garbage collection. Each thread is designed to pretty much work in isolation only reporting progress as it goes. i am inheriting from BackroundWorker for use on my worker threads. i have tried all combinations of GCSettings.LatencyMode, And i tried using server instead of workstation mode, and i tried running each worker thread as a single threaded apartment(STA),  but these efforts didn't make much difference.

    My temporary solution has been to open up multiple instances of my application(running 4 threads each), so they run in seperate processes. This works quite well and takes advantage of the servers full processing power. Anyone got any ideas of how i can acheive the same thing on with one application instance?

Answers (3)