簡體   English   中英

System.Timers.Timer需要回到“主”線程

[英]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.CaptureExecutionContext.Run

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM