Eine vorläufige Studie zum Multithreading-Mechanismus von C# (2)

黄舟
Freigeben: 2016-12-21 14:59:19
Original
1301 Leute haben es durchsucht

Beginnen wir mit der Erstellung eines Threads. Wenn Sie die Thread-Klasse zum Erstellen eines Threads verwenden, müssen Sie nur den Thread-Eintrag angeben. Der Thread-Eintrag ermöglicht es dem Programm, zu wissen, was dieser Thread tun soll. In C# wird der Thread-Eintrag über den ThreadStart-Delegaten bereitgestellt, der auf die vom Thread auszuführende Funktion verweist Thread. Nach der Start()-Methode beginnt der Thread mit der Ausführung der Funktion, die ThreadStart darstellt oder auf die er verweist.

Öffnen Sie Ihr VS.net und erstellen Sie eine neue Konsolenanwendung (Konsolenanwendung). Mit den folgenden Codes können Sie den endlosen Spaß erleben, einen Thread vollständig zu steuern!

//ThreadTest.cs

using System;
using System.Threading;

namespace ThreadTest
{
public class Alpha
  {
 public void Beta()
  { Line("Alpha.Beta läuft in einem eigenen Thread. "
}
}
};

Public Class Simple
{

Public Static Int Main ()

{
Console.WriteLine("Thread Start/Stop/Join Sample");

   Alpha oAlpha = new Alpha();
     //Erstelle hier einen Thread, um die Beta()-Methode der Alpha-Klasse auszuführen

Thread oThread = new Thread(new ThreadStart(oAlpha.Beta)) ;

oThread.Start();
while (!oThread.IsAlive); ;
Console.WriteLine("Alpha.Beta ist fertig"); try

    Console.WriteLine("Versuchen Sie, den Alpha.Beta-Thread neu zu starten"); >Console.Write( "ThreadStateException versucht Alpha.Beta neu zu starten. ");
Console.WriteLine("Erwartet, da abgebrochene Threads nicht neu gestartet werden können.");
return 0 ;
   } 
   }
 }

Beim Erstellen des Threads oThread haben wir den ThreadStart-Agenten initialisiert, indem wir auf Alpha.Beta( )-Methode. (Delegat)-Objekt: Wenn der von uns erstellte Thread oThread zum Starten die oThread.Start()-Methode aufruft, führt das Programm tatsächlich die Alpha.Beta()-Methode aus:

Alpha oAlpha = neues Alpha ();
Thread oThread = new Thread(new ThreadStart(oAlpha.Beta));
oThread.Start();

Dann in der while-Schleife der Main()-Funktion, Wir verwenden die statische Methode Thread.Sleep() und stoppt den Hauptthread für 1 ms. Während dieser Zeit wendet sich die CPU an den Ausführungsthread oThread. Dann versuchen wir, den Thread oThread mit der Methode Thread.Abort() zu beenden. Beachten Sie die folgende Methode oThread.Join(). Die Methode Thread.Join() lässt den Hauptthread warten, bis der oThread-Thread endet. Sie können einen int-Parameter als maximale Wartezeit für die Thread.Join()-Methode angeben. Danach haben wir versucht, den Thread oThread mit der Methode Thread.Start() neu zu starten, aber die Konsequenz der Methode Abort() war offensichtlich, dass der Thread unwiderruflich beendet wurde, sodass das Programm am Ende eine ThreadStateException
Das Obige ist eine vorläufige C#-Studie zum Multithreading-Mechanismus (2). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage