Morpheus2200
Semiprofi
Thread Starter
- Mitglied seit
- 04.08.2001
- Beiträge
- 30.945
Moinsen Community,
ich bin ziemlich frisch in c# / Visual Studio.
Bisher kam ich mir viel Google, stackoverflow und Msdn doku ganz gut zurande, aber bei ThreadPools komm ich gerade nicht zurecht.
Ich hab mal eine kurze Demo gebaut, wie ich aktuell die Anzahl gespawnter Threads unter Kontrolle halte:
hastebin
Das ganze ist allerdings recht unelegant, da so immer erst auf Beendigung des aktuellen 'Pakets' gewartet wird.
ThreadPools wäre die elegantere Lösung, allerdings raff ich nicht so ganz, wie ich die zu Verwenden habe, das war meine Idee:
hastebin
findet VS aber gar nicht gut, meint es könnte nicht von 'method group' nach 'WaitCallback' konvertieren. Nun ist die Beschreibung für ThreadPool.QueueUserWorkItem "Queues a method for execution. The method executes when a thread pool thread becomes available."
Ich seh also das Problem nicht so recht. Muss ich die Methode noch verpacken? braucht die irgendeine spezielle Funktion? Ich raffs nicht so ganz.
Wäre mega, wenn mir da jemand etwas Klarheit verschaffen könnte.
UPDATE:
okay, so funktioniert es halbwegs:
hastebin
Ich hab aber das Gefühl da mindestens eine Ecke zu viel zu gehen. Zudem wird wohl das ThreadPool SetMaxThreads nicht verwendet. Meine Entwicklungsumgebung ist eine windows VM mit 2 Kernen. MaxThreads sollte also auf 1 festgelegt werden. Dafür werden die Threads aber zu fix abgearbeitet und die CPU-Last hängt bei 100% statt bei ~60% (10% background-last + 50% threads)
Grüße
ich bin ziemlich frisch in c# / Visual Studio.
Bisher kam ich mir viel Google, stackoverflow und Msdn doku ganz gut zurande, aber bei ThreadPools komm ich gerade nicht zurecht.
Ich hab mal eine kurze Demo gebaut, wie ich aktuell die Anzahl gespawnter Threads unter Kontrolle halte:
hastebin
Das ganze ist allerdings recht unelegant, da so immer erst auf Beendigung des aktuellen 'Pakets' gewartet wird.
ThreadPools wäre die elegantere Lösung, allerdings raff ich nicht so ganz, wie ich die zu Verwenden habe, das war meine Idee:
hastebin
findet VS aber gar nicht gut, meint es könnte nicht von 'method group' nach 'WaitCallback' konvertieren. Nun ist die Beschreibung für ThreadPool.QueueUserWorkItem "Queues a method for execution. The method executes when a thread pool thread becomes available."
Ich seh also das Problem nicht so recht. Muss ich die Methode noch verpacken? braucht die irgendeine spezielle Funktion? Ich raffs nicht so ganz.
Wäre mega, wenn mir da jemand etwas Klarheit verschaffen könnte.
UPDATE:
okay, so funktioniert es halbwegs:
hastebin
Ich hab aber das Gefühl da mindestens eine Ecke zu viel zu gehen. Zudem wird wohl das ThreadPool SetMaxThreads nicht verwendet. Meine Entwicklungsumgebung ist eine windows VM mit 2 Kernen. MaxThreads sollte also auf 1 festgelegt werden. Dafür werden die Threads aber zu fix abgearbeitet und die CPU-Last hängt bei 100% statt bei ~60% (10% background-last + 50% threads)
Grüße
Zuletzt bearbeitet: