我如何在 C# 中实现类似 JavaScript 的 setTimeout 之类的东西?

que*_*bob 5 c# settimeout

我有一个 C# 应用程序,它从服务器接收更新、处理它并更新 GUI。更新不断进来,每秒说几次。我希望应用程序最多每 2 秒更新一次 GUI。因此,如果更新在时间 T 到来,我希望从 T 到 T+2sec 的所有更新都保留在缓冲区中,并在 T+2sec 进行处理和 GUI 更新。我知道在 JS 中你可以使用 setTimeout() 在未来的某个时间执行一些代码,所以我想要这样的东西。

这样做的合适方法是什么?我听说使用线程来“调度”函数调用并不是一个好主意,但我不确定是否有更好的方法来做到这一点。使用一个间隔两秒的计时器,与 GUI 线程同步,进行处理/更新会不会很糟糕?

Ode*_*ded 0

正如您在问题中发布的那样,您应该使用计时器类之一。

请参阅这篇MSDN 文章对它们进行比较 - 这应该为您做出决定提供良好的基础。