Autor Beitrag
BlackMatrix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 02.05.10 13:22 
Hi.

Folgendes Codebeispiel:

ausblenden C#-Quelltext
1:
2:
3:
4:
foreach (string user in users)
ThreadPool.QueueUserWorkItem(aufruf, user);

Thread.Sleep(zeit);


Nun soll nach der Wartezeit der ganze Threadpool beendet werden, egal wie weit die Threads gekommen sind. Wie ist das möglich?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 02.05.10 13:34 
Thread.Abort kannst du nur mit eigenen Threads benutzen. Berechnungen irgendwo mittendrin abbrechen zu lassen ist aber sowieso relativ gefährlich, deswegen wurde mit dem PFX aus .NET 4 CancellationToken eingeführt. Auch ohne .NET 4 würde ich eher ein cancel-Flag periodisch überprüfen und dann ggf. die Berechnung kontrolliert abbrechen.

_________________
>λ=
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: So 02.05.10 13:53 
Okay, vielen Dank. Wobei ich sagen muss, dass die Methode nur nebensächliches Zeugs erledigt und von mir aus aus gerne abgebrochen werden können, solange das Programm stabil bleibt.