重载C#应用程序在激活鼠标事件时冻结

时间:2010-01-08 23:10:25

标签: c# events timer freeze

我的C#应用​​程序有一个定时器,每100毫秒触发一次事件。在此事件中,有一个总线流量的接收处理程序,它不断循环,直到接收缓冲区为空,或者已经过了100毫秒。这工作正常,直到我尝试在运行时使用我的应用程序中的其他控件之一。然后应用程序冻结。有没有人有任何想法我可以如何划分我的应用程序(或以其他方式修改它),所以当我尝试使用控件时,后台事件(绑定到计时器)可以继续运行而不会拖延应用程序?我使用的是Microsoft Visual C#2008 Express Edition。感谢。

1 个答案:

答案 0 :(得分:3)

您必须为接收处理程序使用BackgroundWorker(或等效构造)。这样它将在不同的线程中运行,表单将能够及时响应,并且您不需要循环中的计时器。