2011-02-10 3 views
1

Кто-нибудь знает, как можно узнать, сколько потоков выполняется в ThreadPool, используя C# в .net compact framework?Получение числа используемых потоков с ThreadPool

Мне нужно знать это, поэтому я могу представить различия между тем, чтобы позволить .Net управлять потоками и быть нами для создания, запуска, остановки потоков.

Операции, которые мы делаем на те нити часты, но очень быстро (простые математические расчеты и некоторые приобретения вебсервис данных с использованием GPRS), поэтому я думаю, что Threadpool будет лучше

ответ

1

Вы просто не можете это информация в CF, GetAvailableThreads не поддерживается. Да, частые и быстрые лучше всего делать с ThreadPool вместо того, чтобы пытаться управлять им самостоятельно.

+0

Но нет даже взлома, или пользовательской библиотеки потоков, доступной для этого? – Sorcerer86pt

+0

Ну, подсчет текущих потоков не сложно, если вы используете Interlocked.Increment в начале, Decrement в конце метода потока. –

1

по умолчанию может меняться, но вы можете использовать фрагмент кода ниже, чтобы получить номера:

int min = 0, max = 0; 
int min1 = 0, max1 = 0; 
ThreadPool.GetMaxThreads(out max, out max1); 
ThreadPool.GetMinThreads(out min, out min1); 

Console.WriteLine(... 
+0

Просто небольшая проблема с этим ... Я использую .net compact framework, который не имеет функции GetMinThreads. У него есть только getMaxThreads, QueueUserWorkItem, SetMaxThreads – Sorcerer86pt

+1

OK, кажется, вы можете называть только 'GetMaxThreads'. Спасибо – Aliostad