Я работаю в C# и WPF, очень новый для обоих.Как отобразить прогресс во время цикла занятости?
У меня есть петля, которая считывает большое количество данных из внешнего источника. Процесс занимает около 20 секунд, и я хочу показать прогресс пользователю. Мне не нужны какие-либо фантастические индикаторы прогресса, поэтому я решил записать свой прогресс на лейбле, который скажет «Шаг 1/1000», затем перейдите на «Шаг 2/1000» и т. Д.
Мой код выглядит примерно так это:
// "count" is the number of steps in the loop,
// I receive it in previous code
String countLabel = "/"+count.ToString();
for (i = 0; i < count; i++)
{
... do analysis ...
labelProgress.Content = "Step "+i.ToString()+countLabel
}
Однако во время этого анализа экрана «застрял» и прогресс не показывает, как двигаться вперед. Я понимаю это поведение из моего прошлого на C++, где у меня, вероятно, будет отдельный поток, показывающий индикатор выполнения, получающий уведомления из цикла, или некоторую форму repaint/refresh, или принуждение окна/приложения обрабатывать свою очередь сообщений.
Каков правильный способ сделать это на C#? Я не привязан к метке, так что если есть простой прогресс-бар всплывающее окно, я мог бы использовать вместо этого лейбла было бы также быть большим ...
Благодаря
Это может быть Помощь для вас , ** 100% проверено ** http://stackoverflow.com/a/42995210/6863414 –