【发布时间】:2015-01-23 14:35:42
【问题描述】:
Windows 窗体应用程序,在单独的线程中进行繁重的处理。在处理过程的某个地方,我需要从用户那里获得一些反馈(比如询问一些关于视觉输出到另一台设备的问题)。如果我要在 UI 层执行此操作,我会非常乐意使用控件的 Invoke 并执行此操作。处理在业务层完成。我问了业务层的每个人,没有人知道Control、Invoke、MainForm 等关键字。我如何通知主窗体并获取输入? (事件?还是我错过了一些简单的东西?)
【问题讨论】:
-
您应该将其实现为事件或服务,基本上通过调用服务或触发事件来询问“是否有人对此过程有任何输入”。您应该考虑如果不存在服务或事件处理程序会发生什么,可以,只是没有输入,还是错误?这个问题需要向用户询问,这需要发生在 UI 线程上,这不是您现在正在处理的层的问题。
标签: c# multithreading winforms invoke