Wann ist Thread.CurrentThread.Join () sinnvoll?

8

Was ist der Effekt von Thread.CurrentThread.Join (), und wenn / wann wäre es sinnvoll, es aufzurufen?

    
J. Andrew Laughlin 12.06.2013, 18:22
quelle

4 Antworten

12
  

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).

    
Reed Copsey 12.06.2013, 18:25
quelle
10

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.

    
Eugene Beresovsky 02.08.2013 06:08
quelle
1

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.

    
Kauê Gimenes 12.06.2013 18:25
quelle
1

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.

    
rohit 15.06.2017 11:58
quelle

Tags und Links