c#でAutoResetEventをどのように呼び出すか。
AutoResetEventクラスは、マルチスレッドでスレッドの同期を行うための同期イベントクラスです。C#では、AutoResetEventのインスタンスを使用して、そのメソッドやプロパティを呼び出すことができます。
AutoResetEventクラスを使用した基本的な例を以下に示す:
using System;
using System.Threading;
class Program
{
static AutoResetEvent autoResetEvent = new AutoResetEvent(false);
static void Main()
{
Thread t1 = new Thread(Worker);
t1.Start();
// 等待子线程执行完成
autoResetEvent.WaitOne();
Console.WriteLine("Main thread is done.");
}
static void Worker()
{
Console.WriteLine("Worker thread is starting...");
Thread.Sleep(2000); // 模拟耗时操作
Console.WriteLine("Worker thread is done.");
// 通知主线程完成
autoResetEvent.Set();
}
}
在上面的示例中,首先创建了一个AutoResetEvent实例autoResetEvent,并初始化为false。然后创建一个子线程t1并调用Worker方法,在Worker方法中模拟了一个耗时操作,并在完成后通过调用autoResetEvent的Set()方法通知主线程完成。主线程在调用WaitOne()方法时会被阻塞,直到autoResetEvent被设置为true。
この方法により、スレッド間の同期と通信を実現することができます。