I have a a class for handling a socket comunication. It generates an event on message arrival.

On a windows form I use that class and register the event.

On the event handling routine I have to use thread sincronization to be able to update the forms controls witch is very anoying.
...
SendOrPostCallback callback = delegate(object state)
{
fromthreadCarrega_Cartao(state);
};
_uiSyncContext.Post(callback, data);
...

It there a better way to do this?