It depends on what you want to do.
If you are implementing a WinForms app, Control.BeginInvoke is the function
you want. It expects any delegate and an argument array. If you call it on a
control, and internally calls PostMessage with the control's HWND to ensure
that the control's thread will handle the event. The event handler on the
control's thread will the call the delegate with the arguments.
If you are not implementing a WinForms app, you may call PostMessage by just
including windows.h. The compiler will automatically generate a quite
interesting PInvoke function for you.
Marcus