代码之家  ›  专栏  ›  技术社区  ›  SoftwareGeek

在.NET中启动休眠线程

  •  5
  • SoftwareGeek  · 技术社区  · 14 年前

    如果一个线程正在休眠,另一个线程线程将如何调用线程启动?

    2 回复  |  直到 14 年前
        1
  •  6
  •   Brian R. Bondy    14 年前

    而不是睡觉,你要创造一个 EventWaitHandle 使用 WaitOne 超时。

    当您希望线程提前唤醒时,只需将事件设置为已发出信号。

    首先创建 EventWaitHandle :

    wakeUpEvent = new EventWaitHandle(false, EventResetMode.ManualReset);
    

    然后在你的思路中:

    wakeUpEvent.WaitOne(new TimeSpan(1, 0, 0));
    

    当主程序想要提前唤醒线程时:

    wakeUpEvent.Set();
    

    注意:您可以将事件设置为自动重置或手动重置。自动重置意味着一旦waitone从事件返回,它将把它设置回无信号状态。如果你在一个循环中,并且你多次发出信号,这很有用。

        2
  •  1
  •   Otávio Décio    14 年前

    一个线程可以通过等待一个waitobject并让另一个线程调用它的set方法来启动。看看 WaitHandle.WaitOne method .

    Here's 这篇文章可能也有帮助。