Используйте Task
, который выполняет обновление, запланированное для пользовательского интерфейса с использованием TaskScheduler.FromCurrentSynchronizationContext
.
http://msdn.microsoft.com/en-us/library/dd997394.aspx
Преимущество этого подхода перед Control.Invoke
состоит в том, что он будетработать в WPF, Silverlight, или Windows Forms, тогда как Control.Invoke
только для Windows Forms.
PS Если вы еще не используете .NET 4.0, тогда Task
и TaskScheduler
доступны в библиотеке Rx .