немного несовершеннолетних вопроса ...Winforms выполнение кода в отдельном потоке
Я понимаю, что в приложении Winforms, долго выполняющийся код должен быть выполнен в отдельном потоке. Как это можно сделать, например, событие нажатия кнопки?
Я хочу сделать это, чтобы освободить поток пользовательского интерфейса, чтобы я мог одновременно накладывать текущую форму на полупрозрачную форму модального диалога. Я создал форму модального диалога с аккуратным загрузочным GIF, расположенным в центре, который отлично работает на событии нажатия кнопки самостоятельно.
Причина, по которой я выбрал этот метод, заключается в следующем: (1) Я хочу заблокировать любое взаимодействие пользователя с формой во время выполнения кода и (2) предоставить пользователю указание, что обработка выполняется (Я не знаю, как судить о том, как долго будет выполняться конкретный кусок кода, следовательно, выбор неопределенного индикатора загрузки gif).
Кроме того, по теме выполнения кода в отдельных потоках ... должно ли это не относиться к любому коду или только к долгосрочному коду?
Я бы очень признателен за любую помощь по этому вопросу! Спасибо!
Спасибо Fredrik. Я полагаю, если бы у вас было две длительные операции, которые можно было бы вызвать с одной из двух кнопок (щелчок), тогда вам нужно будет добавить 2 компонента BackgroundWorker в вашу форму ... да? – Shalan
@Shalan: это был бы самый простой подход, да. –
Спасибо, Fredrik – Shalan