NET CF上的线程安全调用

我有一个运行后台线程来触发事件,但是如何使用NET CF确保线程安全地调用这些事件?

我会在.NET平台上使用ISyncronizeInvoke,但我在NET CF上找不到这个。 我确定有一个等效的….或?

Compact Framework 确实Control.Invoke / BeginInvoke ,虽然我认为它仅限于EventHandler委托(任何其他委托在执行时抛出exception)。

假设您的实际 ISynchronizeInvoke实例将是一个UI控件,我只需将引用作为Control传递给任何需要它的东西。 如果你真的想使用一个接口,你总是可以创建自己的ISynchronizeInvoke接口,然后创建一个只包含Control的实现。

是的,它在.NET CF中可用,以下是这样一个项目的摘录:
从另一个线程调用SampleMethod()

 delegate void SimpleInvokeDelegate(); private void SampleMethod() { if (InvokeRequired) { Invoke(new SimpleInvokeDelegate(SampleMethod)); } else { // Update UI elements here. } }