2011-02-10 4 views
1

Tout le monde sait comment on peut savoir combien de threads sont en cours d'exécution dans un ThreadPool, en utilisant C# dans un .net compact framework?Obtenir le nombre utilisé thread avec ThreadPool

J'ai besoin de le savoir, donc je peux présenter les différences entre laisser .Net gérer les threads et être nous pour créer, démarrer, arrêter les threads.

Les opérations que nous faisons sur les fils sont fréquents, mais très rapide (calculs mathématiques simples et une acquisition de données webservice en utilisant gprs), donc je pense qu'un Threadpool serait mieux

Répondre

1

Vous ne pouvez pas obtenir cette information dans CF, GetAvailableThreads n'est pas supporté. Oui, fréquente et rapide est mieux fait avec le ThreadPool au lieu d'essayer de le gérer vous-même.

+0

Mais il n'y a même pas un hack, ou une bibliothèque de thread sur mesure disponible pour cela? – Sorcerer86pt

+0

Eh bien, compter les threads en cours d'exécution n'est pas difficile si vous utilisez Interlocked.Increment au début, Decrement à la fin de la méthode du thread. –

1

La valeur par défaut peut varier mais vous pouvez utilisez l'extrait ci-dessous pour obtenir les nombres:

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

Juste un petit problème avec ça ... J'utilise un framework compact .net qui n'a pas la fonction GetMinThreads. Il a seulement le getMaxThreads, le QueueUserWorkItem, SetMaxThreads – Sorcerer86pt

+1

OK, il semble que vous pouvez seulement appeler 'GetMaxThreads'. Merci – Aliostad

Questions connexes