标签: c# events timer freeze
我的C#应用程序有一个定时器,每100毫秒触发一次事件。在此事件中,有一个总线流量的接收处理程序,它不断循环,直到接收缓冲区为空,或者已经过了100毫秒。这工作正常,直到我尝试在运行时使用我的应用程序中的其他控件之一。然后应用程序冻结。有没有人有任何想法我可以如何划分我的应用程序(或以其他方式修改它),所以当我尝试使用控件时,后台事件(绑定到计时器)可以继续运行而不会拖延应用程序?我使用的是Microsoft Visual C#2008 Express Edition。感谢。
答案 0 :(得分:3)
您必须为接收处理程序使用BackgroundWorker(或等效构造)。这样它将在不同的线程中运行,表单将能够及时响应,并且您不需要循环中的计时器。