等待特定时间后,我需要执行代码。这应该异步发生而不阻塞我的线程。我在网上搜索,发现有很多方法可以做到这一点。有两个选项是使用System.Timers或使用RegisterWaitForSingleObject和ManualResetEvent。
我无法真正弄清两者之间的区别,或者什么时候更喜欢一个。您能简要告诉我为什么以及何时将Timers或RegisterWaitForSingleObject与ManualResetEvent一起使用吗?
旁注:我喜欢TAP和TPL,并且通常比其他模式更喜欢它们(但这是不使用System.Timer的唯一原因吗?]
您使用WaitForSingleObject等待,直到信号通知对象处于特定状态。或发生超时。所以这不是您想要做的。您希望代码在特定时间内被“暂停”。所以这里的“时间”是主要结果。
我将尝试使用Task.Delay(ms)。这似乎是当今最方便的方法。