C#: How to force "calling" a method from the main thread by signaling in some way from another thread

Posted by Fire-Dragon-DoL on Stack Overflow See other posts from Stack Overflow or by Fire-Dragon-DoL
Published on 2011-01-05T00:46:36Z Indexed on 2011/01/05 1:53 UTC
Read the original article Hit count: 661

Filed under:
|
|
|
|

Sorry for long title, I don't know even the way on how to express the question

I'm using a library which run a callback from a different context from the main thread (is a C Library), I created the callback in C# and when gets called I would like to just raise an event.

However because I don't know what will be inside the event, I would like to find a way to invoke the method without the problem of locks and so on (otherwise the third party user will have to handle this inside the event, very ugly)

Are there any way to do this? I can be totally on the wrong way but I'm thinking about winforms way to handle different threads (the .Invoke thing)

Otherwise I can send a message to the message loop of the window, but I don't know a lot about message passing and if I can send "custom" messages like this

Example:

private uint lgLcdOnConfigureCB(int connection, System.IntPtr pContext)
{
    OnConfigure(EventArgs.Empty);
    return 0U;
}

this callback is called from another program which I don't have control over, I would like to run OnConfigure method in the main thread (the one that handles my winform), how to do it? Or in other words, I would like to run OnConfigure without the need of thinking about locks

© Stack Overflow or respective owner

Related posts about c#

Related posts about winforms