Ответ происходит в отдельном потоке.Winforms не являются многопоточными, поэтому вам придется отправлять вызов в том же потоке, что и форма.
Вы можете сделать это, используя внутренний цикл сообщений окна.К счастью, .NET предоставляет способ сделать это.Для этого можно использовать методы Invoke или BeginInvoke элемента управления.Первый блокирует текущий поток, пока поток пользовательского интерфейса не завершит вызванный метод.Последний делает это асинхронно.Если нет необходимости выполнять очистку, вы можете использовать последнюю для того, чтобы «запустить и забыть»
Чтобы это работало в любом случае, вам нужно создать метод, который будет вызываться BeginInvoke, и вы 'Вам понадобится делегат, чтобы указать на этот метод.
См. Control.Invoke и Control.BeginInvoke в MSDN для получения дополнительной информации.
По этой ссылке есть образец: https://msdn.microsoft.com/en-us/library/zyzhdc6b(v=vs.110).aspx
Обновление: поскольку я просматриваю свой профиль, потому что я забыл, что у меня здесь есть учетная запись - я заметил это, и я должен добавить: что-либо после 3.5 или когда они значительно изменили модель асинхронного потока здесь, находится вне моей рубки.Я профессионально, и хотя я все еще люблю ремесло, я не слежу за каждым продвижением.Что я могу вам сказать, это , должно работать во всех версиях .NET, но это может быть не абсолютная вершина производительности 4.0 и выше или в эмуляции Mono / Winforms, если она все еще существует.С другой стороны, любое попадание обычно не будет плохим вне серверных приложений и даже внутри, если пул потоков выполняет свою работу.Так что в большинстве случаев не сосредотачивайте усилия по оптимизации здесь, и, скорее всего, это будет работать на «урезанных» платформах, которые вы видите, на которых работают такие вещи, как мобильные пакеты C #, хотя я должен был бы убедиться в этом, и большинство из них не используют winforms, нонекоторые циклы сообщений, и это тоже работает.По сути, это не лучший ответ для новейших платформ в каждом последнем случае.Но это может быть более переносимым в правильном случае.Если это поможет одному человеку избежать ошибки проектирования, то это стоило того, чтобы написать это.=)