事件在C#中是同步的.我有这个应用程序,我的主窗体启动一个线程,其中有一个监听流的循环.当流上出现某些事件时,会从循环向主窗体触发事件.
如果主窗体很慢或显示消息框或某些内容,循环将被暂停.围绕这个最好的方法是什么?通过在主窗体上使用回调和调用?
由于您使用的是表单,因此更简单的方法是使用BackgroundWorker组件.
BackgroundWorker类允许您在单独的专用线程上运行操作.下载和数据库事务等耗时的操作可能会导致用户界面(UI)在运行时停止响应.当您需要响应式UI并且遇到与此类操作相关的长时间延迟时,BackgroundWorker类提供了一种方便的解决方案.