2012-01-12 48 views
1

我正在开发.NET中的多选项卡式应用程序。我想为不同的标签创建不同的流程,类似于Chrome。原因是每个选项卡都是内存密集型的,并且在一个选项卡中崩溃,不应该影响其他选项。每个标签都负责显示非常大的文档。在单独的进程中创建不同的选项卡

我非常感谢在这方面的设计建议。

+0

可能重复(http://stackoverflow.com/questions/201674/tabs-in -their-own-process-with-c-sharp-and-winforms) – 2012-01-12 13:11:23

+0

我怀疑Windows Forms允许你真正托管不同进程中的标签页,我认为UI控件(TabControl和TabPages)必须位于主要应用程序进程/用户界面线程,但当然你可以在控制器类(或者BusinessLogic,按照你喜欢的方式调用这些)中执行所有cpu /内存密集型操作,这些操作在分离的进程或AppDomain中运行,然后TabPages会显示结果 – 2012-01-12 13:11:34

+0

哎呀,是错误的。不知何故,这个问题被关闭为[这一个](http://stackoverflow.com/questions/197182/windows-forms-application-like-google-chrome-with-multiple-processes)的副本,而没有重复编辑成这个问题。 – 2012-01-12 13:11:55

回答

1

您可以将视图图层(控件,窗体)保留在该选项卡中的主机进程中(就像您通常那样)。

但是,将业务逻辑数据等分成单独的进程并通过进程间通信(如命名管道,TCP等与它进行通信)... WCF是一种选择,.net远程处理是另一种选择,直接向上TCP套接字是另一个。

希望它是内存密集的数据和业务逻辑,而不是您的视图层。

这里有一个相关的SO张贴在进程间通信在.NET:What is the best choice for .NET inter-process communication?

[在自己的进程标签用C#和WinForms]的