我有几个项目,每个项目都有UserControl来管理它们。所有项目都在一个解决方案中并同时工作。所有UserControl都在TabControl中。但是如果一个项目没有处理他的异常,那么所有解决方案都会失败。如何在另一个线程中运行每个UserControl?
我有几个类,它们是MVVM中的模型。他们都有ViewModel和View。现在所有类都在一个线程中启动和工作。如果其中一个抛出异常<所有应用程序都将失败。我想要所有模型都在单独的线程中工作。但所有Taht模型的视图都在TabControl中。我怎么能组织这种看法?
答案 0 :(得分:3)
你做不到。 WPF只有一个用户界面线程。从后台线程修改用户界面元素将不起作用,并将引发异常。 (编辑:这不完全正确,显然 可能start individual windows in their own threads。)
如果您对未捕获的异常有疑问,请查看Application.DispatcherUnhandledException event,它允许您为完整的WPF应用程序注册中央异常处理程序。如果在DispatcherUnhandledException处理程序的末尾设置e.Handled = true;
,则异常将导致应用程序回退到用户界面而不是终止应用程序。
更多信息: