我不熟悉ManualResetEvent的用法?
与线程相关吗?它的用途和使用时间?
这里我得到了一个使用manualresetevent的代码,但是我不明白它是什么功能的?
这是密码

public class Doc : SomeInterfaceFromTheDll
{
  private readonly IVersion version; // An interface from the DLL.
  private readonly ManualResetEvent _complete = new ManualResetEvent(false);

  private bool downloadSuccessful;

  // ...

  public bool Download()
  {
    this.version.DownloadFile(this);
    // Wait for the event to be signalled...
    _complete.WaitOne();
    return this.downloadSuccessful;
  }

  public void Completed(short reason)
  {
    Trace.WriteLine(string.Format("Notify.Completed({0})", reason));
    this.downloadSuccessful = reason == 0;
    // Signal that the download is complete
    _complete.Set();
  }

  // ...
}

_complete.WaitOne(); & _complete.Set(); ?的含义是什么?
有谁能给我一个小样本代码,在那里,我会使用。
寻找良好的讨论和使用手册重置事件?谢谢

最佳答案

我建议您阅读MSDN page of ManualResetEvent中的“备注”部分,该部分非常清楚该类的用法。
为了回答您的特定问题,ManualResetEvent用于模拟对Download的同步调用,即使它是异步的。它调用异步方法并阻塞,直到发出ManualResetEvent信号。ManualResetEvent在基于异步事件的模式的事件处理程序中发出信号。所以基本上它一直等到事件被触发并执行事件处理程序。

关于c# - 关于使用ManualResetEvent的用法C#?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15656326/

10-12 14:52