【发布时间】:2014-05-26 02:24:06
【问题描述】:
我正在使用 MVC 开发 C# 桌面应用程序(Windows 窗体),我想使用线程,因为我认为它会为我提供与最终用户的视图的更流畅的交互,我会尽力解释我的最佳想要。
我是这样实现 MVC 的:
View -> 有几个触发事件的控件,这些事件是 由控制器订阅
Controller -> 从这些事件中接收一些信息并通过 它通过调用适当的方法来建模,就像这样 Program.model.methodX(数据)
Model -> 处理信息并将数据发送到视图 触发视图订阅的事件,以便它可以更新 自己
模型实际所做的是与 PLC 通信以从某些寄存器中获取一些数据,而这样做时视图被冻结等待回复。我尝试在模型中实现线程,因为我认为它是合适的为此,问题是我需要为线程传递一些信息(寄存器数量等),这是一个问题,因为线程想要一个返回 void 并且没有参数(ThreadStart)的方法,最后发送通过触发一个有问题的事件将数据传输到视图,因为如果它是一个非静态方法、字段或属性等,它需要一个对象引用。有什么方法可以实现这一点,还是我想都错了?
提前谢谢大家。
【问题讨论】:
标签: c# multithreading winforms model-view-controller