Thread-safe invoke on NET CF

前端 未结 2 1467
感动是毒
感动是毒 2021-01-25 10:40

I have a background thread running that fires events, but how can I ensure a thread safe invocation of these events using NET CF?

I would use ISyncronizeInvoke on the N

相关标签:
2条回答
  • 2021-01-25 11:27

    Yes it is available in .NET CF, here is an extract from such a project:
    SampleMethod() is called from another thread.

    delegate void SimpleInvokeDelegate();
    private void SampleMethod()
    {
        if (InvokeRequired)
        {
            Invoke(new SimpleInvokeDelegate(SampleMethod));
        }
        else
        {
           // Update UI elements here.
        }
    }
    
    0 讨论(0)
  • 2021-01-25 11:40

    The Compact Framework does have Control.Invoke/BeginInvoke, although I believe it's limited to the EventHandler delegate (with any other delegate throwing an exception at execution time).

    Assuming your actual instance of ISynchronizeInvoke is going to be a UI control, I'd just pass the reference as Control to whatever needs it. If you really want to use an interface, you could always create your own ISynchronizeInvoke interface, and then an implementation which just wraps Control.

    0 讨论(0)
提交回复
热议问题