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

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

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

最佳答案 您可以使用System.
Windows.Forms.Timer.它不会在单独的线程中运行事件,它是运行它们的GUI线程.这样您就可以直接更新GUI而无需使用Invoke.

点赞