多线程MVP Windows窗体应用程序更新UI问题

问题描述

我有一个MVP Windows窗体应用程序,该应用程序具有:

[Vue warn]: Avoid mutating a prop directly since the value will be overwritten 
whenever the parent component re-enters.

通过创建演示者对象,将视图对象传递给演示者的构造函数调用演示者的run方法来开始复制。像这样的东西。

IView
{
    string Value { get;set; }
    event EventHandler<EventArgs> SaveValue;
}

IPresenter
{
    Run();
    OnSaveValue(object sender,EventArgs e);
}

IModel
{
    string Value {get;set;}
}

用户与UI交互时(例如,单击SaveValue按钮),表单运行创建事件Save and Presenter的代码,该事件已订阅该事件运行方法OnSaveValue。

我认为这是MVP Windows窗体应用程序的基础。

我的问题是所有这些代码都使用Application.Run()从一个线程运行。 我想要2个线程:

  • 运行所有UI代码的UI线程
  • 运行所有后端代码的演示者线程

这是一个中等大小的项目,具有大约5个以上的视图和50个以上的自定义控件。我读过有关使用Invoke方法从另一个线程更新表单和控件的信息,但是使用Invoke重写所有UI代码是很痛苦的。

我正在寻找一个将是包装类的解决方案,并且我可以从后端调用控件,并且它将通过调用自动运行它。或者,也许您知道一些运行后端线程并从中更新UI的最佳实践。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)