Способы запрета входу программы vb.net в режим «Не отвечает» - PullRequest
1 голос
/ 06 июня 2011

У меня есть программа, которая выполняет довольно длительную операцию в фоновом режиме, как только пользователь нажимает кнопку.Я реализовал индикатор выполнения, но если к окну прикоснуться или переместить, то оно будет серым и говорит (не отвечает).Все по-прежнему работает, и когда операция завершается, программа возобновляет работу.(Но пользователь не знал бы этого: (

Любые идеи о том, как не допустить этого, я работаю с vb.net в Visual Studio 2010

Ответы [ 3 ]

3 голосов
/ 06 июня 2011

Я думаю, что какое-то использование потоков поможет этому.Вы бы отправили фактическую операцию в новый поток, отличный от потока, отвечающего за работающее приложение.

2 голосов
/ 06 июня 2011

Используйте BackgroundWorker или Пул потоков для запуска задач в другом потоке, сохраняя при этом ваш пользовательский интерфейс (пользовательский интерфейс) отзывчивым.

Кроме того, зацените эту превосходную бесплатную электронную книгу (я боюсь, в C #), чтобы узнать все, что вам нужно знать о потоках:

http://www.albahari.com/threading/#_Introduction

1 голос
/ 07 июня 2011

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

Но имейте в виду, что это может создать некоторые проблемы с повторным входом , если пользователь все еще может выполнять действия с вашей формой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...