c#

C# waitone方法如何查看状态

小樊
81
2024-11-28 03:39:28
栏目: 编程语言

在C#中,WaitOne方法是ManualResetEvent类的一个成员,用于等待一个事件变为有信号状态。要查看WaitOne方法的状态,您可以使用ManualResetEvent类的IsSet属性。

以下是一个示例:

using System;
using System.Threading;

class Program
{
    static ManualResetEvent _event = new ManualResetEvent(false);

    static void Main()
    {
        // 启动一个线程,等待事件变为有信号状态
        Thread thread = new Thread(() =>
        {
            Console.WriteLine("等待事件变为有信号状态...");
            _event.WaitOne();
            Console.WriteLine("事件已变为有信号状态!");
        });

        thread.Start();

        // 让主线程休眠一段时间,以便子线程有机会执行
        Thread.Sleep(2000);

        // 设置事件为有信号状态
        _event.Set();

        // 等待子线程完成
        thread.Join();
    }
}

在这个示例中,我们创建了一个ManualResetEvent实例_event,并将其初始状态设置为false(无信号)。然后,我们启动一个新线程,该线程调用WaitOne方法等待事件变为有信号状态。在主线程中,我们休眠一段时间,然后使用Set方法将事件设置为有信号状态。最后,我们使用Join方法等待子线程完成。

要查看WaitOne方法的状态,您可以在调用WaitOne之前和之后检查IsSet属性的值。例如:

Console.WriteLine("等待事件变为有信号状态之前: IsSet = " + _event.IsSet);
_event.WaitOne();
Console.WriteLine("等待事件变为有信号状态之后: IsSet = " + _event.IsSet);

这将输出:

等待事件变为有信号状态之前: IsSet = False
等待事件变为有信号状态之后: IsSet = True

0
看了该问题的人还看了