Pracuję w C# i WPF, bardzo nowe dla obu.Jak wyświetlić postępy w zajętości pętli?
Mam pętlę, która odczytuje wiele danych z zewnętrznego źródła. Proces ten trwa około 20 sekund i chcę pokazać postęp użytkownika. Nie potrzebuję żadnych ozdobnych pasków postępu, więc zdecydowałem się przedstawić postępy w etykiecie, która powie "Krok 1/1000", a następnie zmienić na "Krok 2/1000" itd.
Mój kod wygląda jak to:
// "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
}
jednak podczas tej analizy ekran jest „zablokowany” i postęp nie pokazują jak postęp. Rozumiem to zachowanie z mojej przeszłości w C++, gdzie prawdopodobnie miałbym oddzielny wątek pokazujący pasek postępu otrzymujący powiadomienia z pętli lub jakąś formę odświeżenia/odświeżenia lub zmuszając okno/aplikację do przetworzenia swojej kolejki wiadomości.
Jaki jest właściwy sposób, aby to zrobić w języku C#? Nie jestem związany z wytwórnią, więc jeśli istnieje prosty ekran postępu bar popup można używać zamiast tej etykiety byłoby również świetne ...
Dzięki
Może to być pomoc dla Ciebie , ** 100% testowane ** http://stackoverflow.com/a/42995210/6863414 –