1
A
回答
3
如果工作線程是Task<TResult>
,那麼您可以從Task<TResult>.Result
屬性檢索結果。
如果工作線程爲BackgroundWorker
,那麼您可以從傳遞給BackgroundWorker.RunWorkerCompleted
的參數對象中的 RunWorkerCompletedEventArgs.Result
屬性檢索結果。
如果工作線程是通過Delegate.BeginInvoke
執行的ThreadPool
線程,那麼即使代理已完成,也可以通過調用EndInvoke
來檢索結果。
如果工作線程是Thread
,或通過ThreadPool.QueueUserWorkItem
執行ThreadPool
線程,那麼你必須「回報」的結果通過設置參數的子對象,通過使用Lambda綁定變量,或者使用全局變量。
0
這取決於。
什麼是主線程?
它對數據有什麼作用?
例如,在WinForms中,可以調用Invoke
方法在主線程上以數據爲參數運行回調。
0
它取決於線程是如何創建的以及主線程是什麼類型的線程。如果是WinForms或WPF線程,最簡單的方法是在完成工作線程後,使用主線程的SynchronizationContext
在主線程上執行操作。
void StartWorker() {
var context = SynchronizationContext.Current;
ThreadPool.QueueUserWorkItem(WorkerThread, context);
}
void WorkerThread(object state) {
var context = (SynchronizationContext)state;
...;
context.Post(WorkerDone, ...);
}
void WorkerDone(object state) {
// back on UI thread
}
相關問題
- 1. 如何將對象從Android中的其他線程傳遞迴主線程?
- 2. C#多線程服務器。將對象傳遞給主線程
- 3. C# - 將數據從ThreadPool線程傳遞迴主線程
- 4. 如何將對象從主線程傳遞到java中的另一個線程
- 5. QT多線程數據從主線程傳遞給工作線程
- 6. C++傳遞對象給一個線程
- 7. 將對象傳遞給線程並在線程運行後將其取回
- 8. 如何將參數傳遞給c多線程中的線程
- 9. 從工作線程調用主線程回調函數
- 10. 如何從工作線程檢查主線程的屬性值?
- 11. 如何從Java中的工作線程訪問主線程?
- 12. c#多線程,傳遞對象到另一個對象
- 13. 如何將線程對象傳遞給新的活動,並將其返回到
- 14. Iphone:傳遞對象和多線程
- 15. WPF:在UI線程和後臺線程之間傳遞對象
- 16. 如何將信息從ThreadPool.QueueUserWorkItem傳遞迴UI線程?
- 17. c#回調主線程
- 18. 如何迴應主線程?
- 19. 將事件從主線程傳遞給工作線程並等待它是否安全?
- 20. 如何傳遞是在線程X中創建一個WPF對象,線程Y'
- 21. C++ //將Boost :: array傳遞給Boost ::線程
- 22. 檢測對象何時傳遞給C++中的新線程?
- 23. 如何將消息傳遞給線程
- 24. 共享對象並從主線程中控制線程執行
- 25. c#定期從主線程返回值
- 26. 將Edittext傳遞給線程
- 27. C#如何調用由工作線程的主線程創建的對象的方法?
- 28. android線程:工作線程如何向主(GUI)線程發送信號?
- 29. 使用Handler將數據從bg線程傳遞到UI線程?
- 30. 從工作線程改變主線程的CultureInfo
哪個版本的C#? – 2010-08-17 00:27:03