Использование Invoke для доступа к объекту в потоке windows forms / controls

Использование асинхронного программирования может быть полезно для улучшения работы пользователя. Асинхронное программирование в основном включает обработку тяжелой операции в отдельный поток, чтобы избежать замораживания пользовательского интерфейса и позволить пользователю выполнять другие операции параллельно.

В приложении windows всякий раз, когда вы пытаетесь получить доступ к объекту windows forms или элементов управления из другого потока, то вы не сможете этого сделать. Чтобы обработать такой вид сценария, можно использовать Invoke для доступа к объекту перекрестного потока

Предположим, что у вас есть функция в вашей форме, которую вы хотите вызвать из отдельного потока.

Прежде всего вам нужно создать делегат с соответствующей сигнатурой этой функции

Теперь для вызова этой функции из отдельного потока используйте метод Invoke с параметрами

Если вы не уверены, будет ли он вызван из другого потока, вы можете проверить, является ли invoke обязательным.

Обновлено: 04.01.2020 — 22:06

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.