Я новичок в многопоточности (а также в C #), поэтому я надеюсь, что это не очевидно:
В моей форме (приложение WinForms, .NET 2.0) я подписался на событие, вызванное другим объектоми при обработке этого события я хочу изменить несколько элементов управления в моей форме.Поскольку это событие возникает в другом потоке, а не в основном потоке пользовательского интерфейса, я хочу перенаправить вызов в поток формы.
Я понимаю, что мог бы использовать метод Control.Invoke () для любого элемента управления, который мне нуженизменить, но поскольку их несколько, я не хочу этого делать.
При поиске в Интернете я обнаружил подсказки, что сам класс Form предоставляет метод Invoke ().См. Например: http://marioschneider.blogspot.com/2008/04/invoke-methode-fr-multithread.html (Извините, поскольку я новый пользователь, я не могу опубликовать более одной ссылки. Я добавлю больше ссылок в качестве комментариев, если это возможно.)
С этимЯ мог бы просто обернуть мой обработчик событий, а затем использовать его так, как если бы он вызывался в потоке пользовательского интерфейса.Однако, похоже, это не определено в моей среде, и в документации MSDN System.Windows.Forms.Form этого также нет.
Существует ли этот метод в .NET-Framework?Мне трудно поверить, что Form не предоставляет такой метод, так как использует ту же очередь сообщений, что и Controls.(Или я что-то здесь упускаю?)