我正在使用System.Times.Timer監視進程,這將定期調用一個方法。但是我面臨的一個問題是調用是使用多線程完成的。如果我刪除定時器,那麼它將作爲STA工作。使用定時器,當我調用ElapsedMethod來調用另一個函數時,它將更改爲MTA,從而在最後導致異常。定時器和C#中的多線程#
-3
A
回答
2
將System.Timers.Timer
更改爲System.Windows.Forms.Timer
並且所有操作都將在UI線程上執行。
如果你不想這樣做,那麼你可以將SynchronizingObject
設置爲this
。因爲當SynchronizingObject爲null時,處理Elapsed事件的方法在系統線程池的線程上調用
+0
這就是'System.Windows.Forms.Timer' –
+0
@JimMischel謝謝更新。 – Ehsan
2
System.Timers.Timer
有一個SynchronizingObject屬性,您可以將該屬性設置爲將事件封送到UI線程。將其設置爲表單。那就是:
System.Timers.Timer Timer1 = new System.Timers.Timer();
Timer1.SynchronizingObject = this;
// add other Timer initialization here
相關問題
- 1. 控制檯C++中的多線程定時器和I/O
- 2. 加速線程和定時器,C++
- 3. 定時器和線程
- 4. 帶定時器的C++多線程編程
- 5. C#中的定時器和線程不能在一起嗎?
- 6. C++定時器,線程,定期調用
- 7. C#:線程和多線程的概念
- 8. 帶定時器的多線程
- 9. GC.Collect的和C#多線程
- 10. C#定時器對多線程的,可以忽略蜱
- 11. C多線程和實時路徑
- 12. C++中的多線程Web服務器
- 13. C中的多線程TCP服務器
- 14. C#中的多線程TCP服務器?
- 15. 定時器和線程的問題
- 16. Android的定時器和UI線程
- 17. C++使用一個線程定時器
- 18. C#使線程等待定時器
- 19. C#WinForms:從線程激活定時器
- 20. 線程VS定時器在C#
- 21. Android處理程序,定時器和多線程
- 22. 多線程COMObject和UI線程(C#)
- 23. UCP定時器線程太多
- 24. 如何使用定時器多線程
- 25. 定時器ASP.NET多線程問題
- 26. 定時器線程?
- 27. C#計時器和線程安全
- 28. C多線程下載器#
- 29. C#多線程 - 鎖定
- 30. CoreData,多線程和綁定同時
什麼是例外? – Ehsan
這是什麼問題? – Gareth