在多线程编程中,线程之间的同步和通信是一个常见的需求。例如,我们可能需要一个子线程完成某些任务后通知主线程,并由主线程执行特定的动作。本文将基于一个示例程序,详细讲解如何使用 AutoResetEvent 来实现这种场景。
示例代码:
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Main thread started.");
using (AutoResetEvent workDoneEvent = new AutoResetEvent(false))
{
// 创建并启动子线程
Thread workerThread = new Thread(() => DoWork(workDoneEvent));
workerThread.Start();
// 主线程继续做其他事情,不会被阻塞
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main thre