C# 线程中的 Join、Sleep 和 Abort 方法
programmingserver side programmingcsharp更新于 2025/8/11 10:07:17
Join
阻塞调用线程,直到线程终止,同时继续执行标准 COM 和 SendMessage 消息传输。此方法有不同的重载形式。
Sleep
使线程暂停一段时间。
Abort
Abort 方法用于销毁线程。
让我们看一个线程中 Join() 的示例 −
示例
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();
}
}
}
让我们看一个线程中 abort() 和 sleep() 的例子。
示例
using System;
using System.Threading;
namespace Demo {
class ThreadCreationProgram {
public static void CallToChildThread() {
try {
Console.WriteLine("Child thread starts");
// 做一些工作,比如数到 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'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();
// 暂停主线程一段时间
Thread.Sleep(2000);
// 现在中止子进程
Console.WriteLine("In Main: Aborting the Child thread");
childThread.Abort();
Console.ReadKey();
}
}
}

