TEvent anhand ihres Namens global gültig?
-
Bevor ich in meinem anderen Thread was schreibe, frage ich erstmal allgemein.
TEvent* terminate; im Header der Klasse
terminate = new TEvent(NULL,true,false,"Terminate",true);
im Konstruktor.Aus Faulheit und Gründen der Übersichtlichkeit das Ganze in allen Klassen.
Doof: Bei den Klassen handelt es sich um TThreads.
Ich laufe hier seit 2 Tagen amok, weil sich alle Threads terminieren (Die warten auf diesen Event), wenn ich einen terminiere.
Eben kam ich auf die dämliche Idee bei einem den Namen auf "Terminat" zu ändern.
Siehe da.... Es passiert nicht mehr mit diesem Thread.
Was zur Hölle??? Heisst das ein Event mit dem Namen "X" ist quasi global gültig, so daß ich irgendwoanders nur ein Event mit dem gleichen Namen anlegen muss und das reagiert dann auch darauf?
-
ja, ist global - aber nicht nur in deinem projekt - sondern im gesamten system, wenn ich das richtig verstehe:
"An Event Name is global to the system. Any name already in use by Semaphores, Views or Mutexes will fail since they all share the same global namespace"Quelle:
http://funcky.com/Docs/NETWORK/CreateEvent.AspWozu brauchst du überhaupt nen Namen? Hast doch das Handle - das muss reichen, dann kannste für den Namen "" nehmen - es sei denn, du willst halt, dass alle auf das gleiche event/semaphore reagieren...
c ya
-
Ganz eifnach, weil man so Dinge rausfindet, die man überall sonst überlesen hätte.