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)
_uiSyncContext.Post(callback, data);

It there a better way to do this?