Wpis z mikrobloga

Czy nie chodziło bardziej o to, żeby jeden wątek w pętli co kilka sekund wypisywał czas ? Ty chyba tworzysz masę wątków z których każdy raz wypisze czas i się zakończy.
@kinemator: zrobiłem mały test i przy wyświetlaniu czasu dodałem id wątku z AppDomain.GetCurrentThreadId() i wyszedł dziwny wynik, bo co drugi wynik miał ten sam wątek ( ͡° ʖ̯ ͡°)
Pewnie masz rację, dobrze kminie że musiałbym wrzucić while (true) do środka wyswietlCzas() i będzie ok?

edit: tu już działa ok i wątek też jest ciągle ten sam ( ͡º ͜ʖ͡º)
@ukaszzz: Podstawowym błędem jaki tu popełniasz to stosowanie async z void. Jedynym wyjątkiem gdzie można to robić to obsługa zdarzeń. W innych miejscach nie wolno tego łączyć- nigdy się nie dowiesz czy metoda skończyła swoją robotę, czy wyskoczył wyjątek,...
Zazwyczaj użycie Task.Delay zamiast Thread.Sleep będzie lepszym wyjście w programowaniu asynchronicznym związanym z I/O
Porównaj sobie coś takiego:
static async Task PrintTime()
{
await Task.Delay(5000).ContinueWith(async t => { Console.WriteLine(DateTime.Now); await PrintTime();
@ZapomnialWieprzJakProsiakiemByl: dzięki, wygląda na dużo bardziej eleganckie rozwiązanie :) mam jeszcze pytanie co do wywołania, wywołuje w Main po prostu PrintTime() i działa, ale VS podkreśla wywołanie na zielono i żebym "consider applyiing await" (CS 4014), tylko że jak dodam await, Main musiałby być async, a taki być nie może :p Rozumiem że mam się tym nie martwić?
@ukaszzz:
Dałem trochę ciała :) PrintTime powinno nazywać się PrintTimeAsync- metody asynchroniczne zawsze powinny mieć sufiks Async.
Podkreśla ci bo nie powinno mieszać się kodu synchronicznego i asynchronicznego -metody synchroniczne nie powinny wywoływać asynchronicznych. Wyjątkiem niestety jest metoda Main aplikacji konsolowych.
Możesz to odpalić tak
Task.Run(async () => await PrintTimeAsync()).GetAwaiter().GetResult();.
Task.Run(async () => await PrintTimeAsync()).Wait();
Albo zwyczajnie:
PrintTimeAsync().Wait();
PrintTimeAsync().GetAwaiter().GetResult()

Możesz też zrobić sobie asynchroniczną Main aby się nie produkować
@ZapomnialWieprzJakProsiakiemByl: dziękuje bardzo :) siedzę jeszcze nad dwoma zadaniami, mógłbym się na pw odezwać jak je zrobię? tylko rzucić okiem czy jest ok, albo że nie ( ͡º ͜ʖ͡º) nie chce zabierać dużo czasu, a przygotowuje się do kolosa ( ͡º ͜ʖ͡º)

uprzedzam że nie są to wielkie zadania, myślę że ktoś kto się zna napisałby je w 2 minuty góra