您可以使用WaitForSingleObject来等待,直到信号通知对象处于特定状态为止。或发生超时。所以这不是您想要做的。您希望代码在特定时间内被“暂停”。所以这里的“时间”是主要结果。
我将尝试使用Task.Delay(ms)。这似乎是当今最方便的方法。
,
计时器
当您希望同一代码多次运行且之间有特定时间间隔时,请使用Timers。
RegisterWaitForSingleObject
The documentation说得最好:
注册正在等待WaitHandle的代表。
如果需要,可以使用WaitHandle
等待独占访问共享资源。
如果您不等待共享资源,则不适合您的用例。
ManualResetEvent
The documentation说
表示线程同步事件,当发出信号时,必须手动将其重置。
“信号发送”和“重置”是您的代码需要做的事情。当您的一个线程需要向另一个线程发出可以继续运行的信号时,就会使用它。
您的用例
您说:
我需要等待一段时间后才能执行代码。
如果您不需要一遍又一遍地重复代码,并且不必等待共享资源,也不需要等待另一个线程,那么上述方法都不适合。
如果您真的只需要等待特定的时间才能继续前进,则如上所述,请使用Task.Delay
:
await Task.Delay(5000); //wait 5 seconds
本文链接:https://www.f2er.com/3139089.html