Вам нужно посмотреть пример Backgroundworker: http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx Особенно, как он взаимодействует с уровнем пользовательского интерфейса , Основываясь на вашей публикации, это, похоже, отвечает на ваши вопросы.