我对 Windows 窗体有点陌生。我创建的 Windows 窗体应用程序是执行非常耗时的数据转换任务的组件的前端。数据转换任务发出表单订阅的事件。
当表单接收到事件时,它会更改标签中的文本并调用Refresh()
该标签。
当我从表单运行该过程时,它会保持响应并更新标签文本可能一分钟左右。之后,它只是冻结并且 Windows 声明进程“无响应”,直到数据转换完成,此时表单解冻并且标签显示数据转换已完成(如预期的那样)。
我还没有将数据转换放到单独的线程上——这是我应该尝试的第一件事吗?事件可以跨线程吗?如果没有,我还应该怎么做?