Also wenn ich mir den Code von BeRsErKeR anschaue gruselt es mir schon:Krishty hat geschrieben:Bezog sich auch nicht auf deine Antwort; ich will nur, dass joggel einen Überblick darüber bekommt, was er da tut :)
Der Member "bool shutdown" müsste volatile sein.
Und "listOfLogicActions" ist eine normale List,
also auch kein Garantie betreffend Thread visibility.
Das Beispiel könnte man viel simpler machen indem man einfach eine BlockingCollection<T> verwendet und im Loop Take() aufruft:
https://msdn.microsoft.com/en-us/library/dd381908.aspx
Auszug aus dem Doc:
A call to Take may block until an item is available to be removed or the token is canceled.
Mit sowas wäre es zumindest nicht komplett falsch.
Das ganze Beispiel ist aber vom Lösungsansatz her schon nicht schön,
Thema "besser non-blocking Code schreiben".
Hinweise wie man das sauberer machen kann gabs ja bereits,
fängt z.B. an dass man direkt oder indirekt ein Threadpool verwendet.
http://bholley.net/blog/2015/must-be-th ... -code.html