Maison  >  Article  >  développement back-end  >  Méthodes Join, Sleep et Abort dans les threads C#

Méthodes Join, Sleep et Abort dans les threads C#

WBOY
WBOYavant
2023-09-15 11:01:091602parcourir

C# 线程中的 Join、Sleep 和 Abort 方法

Join

Bloque le thread appelant jusqu'à ce que le thread se termine, tout en continuant à effectuer le pompage COM et SendMessage standard. Il existe différentes surcharges de cette méthode.

Veille

Provoque une pause du fil de discussion pendant un certain temps.

Abort

La méthode Abort est utilisée pour détruire les threads.

Voyons un exemple de Join() dans un fil de discussion -

Exemple

using System;
using System.Diagnostics;
using System.Threading;
namespace Sample {
   class Demo {
      static void Run() {
         for (int i = 0; i < 2; i++)
         Console.Write("Sample text!");
      }
      static void Main(string[] args) {
         Thread t = new Thread(Run);
         t.Start();
         t.Join();
         Console.WriteLine("Thread terminated!");
         Console.Read();
      }
   }  
}

Voyons un exemple de abort() et sleep() dans un fil de discussion.

Exemple

using System;
using System.Threading;
namespace Demo {
   class ThreadCreationProgram {
      public static void CallToChildThread() {
         try {
            Console.WriteLine("Child thread starts");
            // do some work, like counting to 10
            for (int counter = 0; counter <= 10; counter++) {
               Thread.Sleep(500);
               Console.WriteLine(counter);
            }
            Console.WriteLine("Child Thread Completed");
         } catch (ThreadAbortException e) {
            Console.WriteLine("Thread Abort Exception");
         } finally {
            Console.WriteLine("Couldn&#39;t catch the Thread Exception");
         }
      }
      static void Main(string[] args) {
         ThreadStart childref = new ThreadStart(CallToChildThread);
         Console.WriteLine("In Main: Creating the Child thread");
         Thread childThread = new Thread(childref);
         childThread.Start();
         //stop the main thread for some time
         Thread.Sleep(2000);
         //now abort the child
         Console.WriteLine("In Main: Aborting the Child thread");
         childThread.Abort();
         Console.ReadKey();
      }
   }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer