Когда я нажимаю кнопку запуска (в моем Default.aspx), процесс запускается (этот процесс связывается с веб-сервисом для получения некоторых файлов и т.д.). Как я:
Убедитесь, что за один раз выполняется только один процесс (т.е. если я обновляю браузер, я не хочу запускать этот процесс во второй раз)
Прогресс в отслеживании - есть 4 точки процесса (25%, 50%, 75%, 100%), которые я хочу отслеживать, и когда каждая часть завершается, я хочу обновить индикатор выполнения. У меня есть объект статуса для текущего процесса, но вопрос в том, как автоматически обновить индикатор выполнения?
Нужно ли использовать потоки для достижения вышеуказанных двух?
Отвечая на них в обратном порядке:
Да. И у вас должен быть объект для инкапсуляции потока.
У вас может быть открытый член вашего объекта, который содержит% от вашего процесса. Вы можете периодически это опробовать. Способ, которым вы будете делать это со своей HTML-страницы, вероятно, является запросом AJAX, чтобы сделать ваш индикатор прогресса самым плавным.
Вам нужно выполнить некоторую синхронизацию потоков. Может быть, через Mutex. Вот хороший пример того, как это сделать (прокрутите вниз до Mutex).