我有一個後臺線程運行引發事件,但我怎樣才能確保使用NET CF線程安全地調用這些事件?線程安全調用NET CF
我會在NET平臺上使用ISyncronizeInvoke,但我無法在NET CF上找到它。我確定有相當的可用....或?
我有一個後臺線程運行引發事件,但我怎樣才能確保使用NET CF線程安全地調用這些事件?線程安全調用NET CF
我會在NET平臺上使用ISyncronizeInvoke,但我無法在NET CF上找到它。我確定有相當的可用....或?
緊湊架構確實有Control.Invoke
/BeginInvoke
,但我相信這是限於EventHandler
委託(與任何其他代表扔在執行時除外)。
假設你實際的ISynchronizeInvoke
實例將是一個UI控件,我只是通過引用作爲Control
到任何需要它。如果你想使用想要使用一個接口,你可以隨時創建自己的接口,然後執行一個包裝Control
。
是的,它是在.NET CF可用的,這裏是從這樣一個項目的摘錄:
SampleMethod()從另一個線程調用。
delegate void SimpleInvokeDelegate();
private void SampleMethod()
{
if (InvokeRequired)
{
Invoke(new SimpleInvokeDelegate(SampleMethod));
}
else
{
// Update UI elements here.
}
}
正確,CF確實有Control.Invoke/BeginInvoke/InvokeRequired。但是在類Control中沒有引入接口。 – 2009-09-05 13:33:03
謝謝,編輯會讓這個更加自信:) – 2009-09-05 15:09:32