Was ist der Effekt von Thread.CurrentThread.Join (), und wenn / wann wäre es sinnvoll, es aufzurufen?
Was bewirkt der Aufruf von Thread.CurrentThread.Join ()
?
Sie werden die Ausführung des aktuellen Threads blockieren und ihn effektiv sperren. Dadurch wird der aktuelle Thread blockiert, bis der aktuelle Thread beendet ist. Dies wird niemals passieren.
, und wenn / wann wäre es sinnvoll, es zu nennen?
Es macht wirklich keinen Sinn, dies zu tun. Sie sollten diese Methode niemals auf diese Weise aufrufen.
Nebenbei bemerkt, da Sie .NET 4 verwenden, würde ich empfehlen, Thread.Join
generell zu vermeiden. Die Verwendung der neuen Klassen Task
/ Task<T>
ist in vielerlei Hinsicht viel schöner, da Sie problemlos Fortsetzungen hinzufügen können (oder immer Task.Wait()
aufrufen, wenn Sie wirklich blockieren müssen).
War es wirklich
%Vor%das hast du in echtem Code gesehen - was ich bezweifle, außer es ist ein Hack, um zu verhindern, dass andere Threads dem aktuellen Thread beitreten - oder war es
%Vor%Letzteres entspricht
%Vor%mit der Ausnahme, dass das Verbinden mit dem aktuellen Thread das Fortsetzen der Nachrichtenübertragung ermöglicht, wenn Sie sich in einer GUI / COM-Situation befinden.
Nein, CurrentThread.Join () macht keinen Sinn
Dies könnte dazu führen, dass Ihr Programm nicht mehr läuft und der Thread A beispielsweise auf Thread A wartet.
Es macht tatsächlich Sinn in der Welt der beobachtbaren. Nehmen wir an, Sie haben einen Warteschlangen-Listener in main und möchten, dass der Haupt-Thread für immer läuft. Anstatt while (true) zu machen und deinen Code in die Schleife zu legen, kannst du letzte Zeile schreiben. Auf diese Weise ist der aktuelle Thread auch ein übergeordneter Thread für andere Threads, die in der Anwendung erzeugt werden. Stellen Sie es sich als Einstiegspunkt für App vor.
Tags und Links c# multithreading c#-4.0