zauważyłem następujące zachowanie. Komunikaty wyjściowe konsoli pojawiają się w niewłaściwym folderze, gdy są zapełniane przez IProgress.
komunikaty pojawiające się na konsole w niewłaściwej kolejności, gdy raportowanie postępów z IProgress.Report()
var recounter = new IdRecounter(filePath, new Progress<string>(Console.WriteLine));
recounter.RecalculateIds();
staram się poprawić moje hermetyzacji, ponownego użycia i projektowe umiejętności. Mam więc klasę o nazwie IdRecounter. Chcę go teraz używać w aplikacji konsolowej, ale później prawdopodobnie w aplikacji WPF lub czymkolwiek innym.
Dlatego chcę, aby klasa była całkowicie nieświadoma jego środowiska - ale jednocześnie chcę zgłosić postęp akcji "na żywo" - dlatego używam typu IProgress, który pozwoli mi umieścić rzeczy do konsoli, do pliku dziennika lub zaktualizować właściwość etykiety stanu itp. (proszę dać mi znać, jeśli nie tak to robisz)
Zauważyłem, że ma tendencję do przesyłania wiadomości do konsoli w nieprawidłowy sposób zamówienie, np tworzenie plików 1
tworzenie pliku 4
tworzenie pliku 5
tworzenie pliku 3
Wszystko gotowe!
tworzenie pliku 2
Kiedy przeszedłem IProgress (MyProgress.Report()
) z Console.WriteLine()
to działa zgodnie z oczekiwaniami.
Co jest przyczyną tego i jak można ją kontrolować?
Dzięki
To, jak wygląda "Postęp" na pewno pomogłoby, gdyby pokazać cały odpowiedni kod. Nie można powiedzieć "Jack" na podstawie tego, co napisałeś. – MethodMan
Prawdopodobny duplikat synchronizacji [IProgress] (https: // stackoverflow. com/q/17982555) –