如何在没有消息的情况下等待WaitHandle?

And*_*ott 10 .net com multithreading

我想WaitHandle.WaitOne(TimeSpan)在.NET中调用,但我在STA线程上,它在等待时抽取消息.由于超出此问题范围的原因,我需要等待而不需要抽水.如何在不抽取消息的情况下等待WaitHandle发出信号?

在某些情况下WaitHandle.WaitOne似乎不会消息.但它有时会发生一些消息.有关详细信息,请参阅以下链接:

  1. Microsoft Windows中的托管和非托管线程
  2. 管理阻塞

x0n*_*x0n 8

WaitForSingleObject或WaitForMultipleObjects是非抽空等待; 使用p/invoke.

[DllImport("kernel32", SetLastError=true, ExactSpelling=true)]
public static extern Int32 WaitForSingleObject(SafeWaitHandle handle, Int32 milliseconds);
Run Code Online (Sandbox Code Playgroud)

-Oisin