1

我有几个项目,每个项目都有 UserControl 来管理它们。所有项目都在一个解决方案中并同时工作。所有用户控件都在 TabControl 中。但是如果一个项目不处理他的异常,所有的解决方案都会失败。如何在另一个线程中运行每个 UserControl?

我有几个类,它们是 MVVM 中的模型。它们都有 ViewModel 和 View。现在所有类都在一个线程中启动和工作。如果其中之一抛出异常<所有应用程序将失败。我希望所有模型都在单个线程中工作。但是 taht 模型的所有视图都在 TabControl 中。我怎样才能组织这个sheme?

4

1 回答 1

3

你不能。WPF 有一个,而且只有一个,用户界面线程。从后台线程修改用户界面元素将不起作用并且会引发异常。(编辑:这并不完全正确,显然可以在自己的线程中启动各个窗口。)

如果您对未捕获的异常有疑问,请查看Application.DispatcherUnhandledException 事件,它允许您为完整的 WPF 应用程序注册一个中央异常处理程序。如果您e.Handled = true; 在 DispatcherUnhandledException 处理程序的末尾设置,异常将导致您的应用程序回退到用户界面而不是终止应用程序。

更多信息:

于 2013-06-26T15:34:19.837 回答