我是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