如何实现JavaScript';s以C#为单位设置超时?

如何实现JavaScript';s以C#为单位设置超时?,c#,settimeout,C#,Settimeout,我有一个C#应用程序,它接收来自服务器的更新,处理它,并更新GUI。更新会不断出现,比如说每秒几次。我希望应用程序最多每2秒更新一次GUI。因此,如果更新在时间T到来,我希望所有从T到T+2sec的更新都留在缓冲区中,并且在T+2sec进行处理和GUI更新。我知道在JS中,您可以在将来的某个时间使用setTimeout()执行一些代码,所以我希望这样 这样做的适当方式是什么?我听说使用线程来“安排”函数调用不是一个好主意,但我不确定有没有更好的方法来做到这一点。如果使用一个与GUI线程同步的间隔

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


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

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


请参阅MSDN文章比较它们-这将为您做出决定提供一个良好的基础。

您可以使用
System.Windows.Forms.Timer
。它不在单独的线程中运行事件,而是由GUI线程运行它们。这样,您就可以直接更新GUI,而不必使用Invoke