我是C#中的多线程应用程序的新手。当我正在处理它时,我已经了解了关于应用程序UI的UI线程。现在我对使用UI线程和不应该做什么有点困惑。用户界面线程的注意事项
Task.Factory.StartNew(() =>
{
try
{
device.Capture(); // capturing data from a I/O device
}
catch (Exception ex)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
{
show_error(ex.Message);
}));
}
});
从代码示例中的每个I/O或DB访问或龙亚军任务应该由一个工作线程来完成和用户界面应该由UI线程进行更新。在这个例子的上面,我想知道UI线程能够有效地完成什么,以及哪些不是?
更新:
确实让我给使用C#定时器和DispatcherTimer的一个例子。 Timer在不同的线程上运行,DispatcherTimer使用UI线程。通过这个DispatcherTimer可能会在UI线程繁忙时挂起。那么这个DispatcherTimer可以在UI线程上运行吗?
*一般来说*,如果涉及比快速计算更或修改UI控件,然后执行[我想从外面张贴此我没编译上面的代码]它在工作者线程上。您可以使用分派器或[任务](http://msdn.microsoft.com/zh-cn/library/dd460717(v = vs.110).aspx)来完成此操作。也就是说,这个问题很可能会引出主要基于意见的答案。 –
是否有任何相关文章或社区wiki可用于此问题? – Prasanth