[英]System.Timers.Timer need to get back to 'Main' thread
我有一個具有System.Timers.Timer(稱為“ myTimer”)的類(稱為“ Foo”)。
Foo包裝非托管的非線程安全代碼。
在myTimer.Elapsed上,我需要在Foo中使用Methods。
現在,myTimer正在嘗試在輔助線程上使用Foo的方法,但這不起作用。
我需要回到包含Foo'方法的線程。
我該如何完成? 僅供參考,Foo的方法位於非UI線程中。
如果Foo不是UI線程,並且您需要從其他線程調用代碼以在其上執行,則需要捕獲執行Foo的同步上下文,然后從其上的計時器調用您的代碼。
看一下SynchronizationContext類。 您可以發布 (異步)或發送委托以在特定的,先前捕獲的同步上下文上執行。
您可能還希望/需要查看ExecutionContext類。 特別是: ExecutionContext.Capture和ExecutionContext.Run
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.