.NET中的预定线程与Threading.Timer

时间:2011-10-12 08:21:11

标签: .net multithreading

我需要在VB.NET的UI中的单独线程中执行代码。代码需要每隔几秒执行一次,也需要在用户执行某项活动时执行。该线程将执行将更改UI的任务。我应该使用普通线程,然后使用Windows.Forms.Timer Timer每隔几秒运行一次该线程,或者System.Threading.Timer类能更好地工作吗?

此外,线程必须执行的代码包含多个函数。我应该在同一个线程上执行所有函数还是考虑在几个线程中将它们拆分?

由于

1 个答案:

答案 0 :(得分:0)

如果更改UI,Windows.Forms.Timer是最好的方法,因为在ui线程中会引发Timer-Elapsed事件,因此您不必更改它。如果你想在改变ui之前做出持久的动作,那么我宁愿使用Threading.Timer。我会进行持久的操作,然后切换到UI线程(通过Invoke)并更改ui。这会使UI对用户操作更具反应性。