Задать вопрос

К чему привязать ProgressBar c#?

Программа "шифратор" - шифрует файлы с помощью RijndaelManaged.Create( ). Как мне сделать, чтобы по мере шифрования соответственно заполнялся ProgressBar на форме?
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Casper-SC
@Casper-SC
Программист (.NET)
Нужно в классе "шифраторе" создать событие. Лучше всего шифровать файл вызвав Task.Factory.StartNew, а в конструкторе "шифратора" захватить текущий контекст синхронизации (SynchronizationContext) и по мере шифрования очередной части потока байт вызывать у контекста синхронизации метод Post (он не ждёт пока обработчик события отработает до конца) и внутри него уже вызывать событие ProgressChanged у "шифратора".

Чтобы понять, что я имею ввиду, смотри код здесь: С# Taks и Invoke почему то блокируется форма?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
HemulGM
@HemulGM
Delphi Developer, сис. админ
Помести на форму таймер (например, на пол секунды) и читай состояние шифрования, вычисляя процент завершенности.
Ответ написан
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Как вариант - создать в классе событие, которое будет возникать при достижении целого числа процентов работы (1, 2, 3 и т.д.). А в форме подписаться на это событие и отображать достигнутое значение в прогрессбаре.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы