如何在不改变现有代码的情况下在“后台”线程中重新加载表单(使用现有代码)?

时间:2013-11-18 06:20:29

标签: .net multithreading winforms visual-studio-2010 backgroundworker

我正在处理一个应用程序(Win Forms / VS 2010),它在启动过程中会加载大量的联系人数据。这很好。

一个新的要求是这个应用程序(我们称之为主应用程序)也可以显示模式对话框,在该对话框中,用户可以查看不同联系人的数据。但是主应用程序(在模态对话框后面)也需要在用户每次更改模态对话框中的联系人时加载联系人数据(因为两个窗口都可以对用户可见;使主应用程序不可见不是选项)。因此模态对话框和主应用程序需要同步。

我的问题是:我希望在此方案中将已更改的联系人加载到主应用程序“后台”,因为每次加载联系人时,由于业务逻辑运行,加载需要一点时间。 / p>

我们已经获得了主应用程序的代码,用于将联系人从主应用程序本身加载到主应用程序中(即在主线程上执行)并且运行良好。

但是当它在一个单独的线程上执行时(在模态对话框后面的后台),我将如何重用该代码?我担心的是这段代码(在主应用程序上加载联系人)会进行大量的GUI更新,理想情况下我不想更改现有代码中的所有GUI更新以查看例如如果需要调用等(因为现有代码现在不在主线程上执行)。

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:0)

用于Windows窗体的MVVM?

这就是你需要的。

http://www.codeproject.com/Articles/364485/MVVM-Model-View-ViewModel-Patte