我有一個應用程序有一個主要的用戶界面和兩個無模式窗口運行在他們自己的單獨線程。將對象從線程傳遞到線程時,我只是在輔助線程的主線程上創建對象的副本。 當我想更新對象本身,並通過代碼和輔助線程更改永久化,我該如何做到這一點?輔助線程始終保留舊對象的副本,並且永遠不會更新,除非線程被殺死或停止,然後再次產生。多線程c#應用程序
1
A
回答
0
有很多方法可以解決這個問題。一個將是該對象的存儲庫的線程安全共享實例。當一個線程更新它時,其他線程會得到一個更新的副本。你可以使用WCF來簡化它。有些想法參見this article on WCF and concurrency。這是@Eric J對您問題的評論的實施。
另一個將通過事件來協調線程。當一個線程更新對象時,一個事件被髮送給其他人。如果對象沒有經常改變,那可能就足夠了。
This question談到第三種可能性:BackgroundWorker
。
相關問題
- 1. 多線程應用程序 - C++/Debian的
- 2. C多線程應用程序結構
- 3. 的HelloWorld多線程C#應用程序
- 4. c#多線程應用程序
- 5. C++中的多線程應用程序
- 6. C#應用程序線程
- 7. 多線程應用程序
- 8. c多線程程序
- 9. webrequests c多線程程序#
- 10. 在線c#應用程序
- 11. 多線程應用程序中的易失性C/C++
- 12. 多線程Web應用程序與多線程Web服務器
- 13. 多線程應用程序+ Web應用程序
- 14. c#windows應用程序中的線程
- 15. C#Web應用程序線程
- 16. C#winforms應用程序線程同步
- 17. C#TCP聊天應用程序線程
- 18. 使用大型線程池調試多線程C++應用程序
- 19. 多線程:C#程序運行C DLL - 不響應C#
- 20. Web應用程序和多線程
- 21. 記錄在多線程應用程序
- 22. 多線程應用程序中的System.setproperty
- 23. 策略多線程應用程序
- 24. TDD多線程應用程序
- 25. 多線程JPA應用程序合併()
- 26. 在多線程應用程序
- 27. ShutDownHook在多線程應用程序
- 28. 多線程的web應用程序
- 29. 斷點多線程應用程序
- 30. 調試多線程應用程序
你爲什麼要複製對象?從多個線程引用同一對象並使用併發語義來確保對該對象的任何更改都是原子性的,這會更簡單。 –