nefericire asincronă dot net

Asincronismul e la modă. Azi nu mai mergi la WC pur și simplu ca o nevoie ci ca un awaitable task și în paralel, pe alt fir de execuție ar fi frumos să răspunzi și la mobil. Aproape totul este “așteptabil”.

Așa cum o poveste Linux are pe toata pagina, de sus până jos tradiționala coloană sudo, așa în .net în ultima vreme codul se decorează cu Await purtat pe stânga.

Nu e greu deci de ce să mă opun așa că let’s Await:

2015-06-12_144806

 

Ooo, scuze! Asta e ex.cepția care confirmă moda, iertare! Să corectăm:

2015-06-12_144752

Dacă tot e așa deștept încât să îți dea seama de subtilitate (care nu e chiar critică), ar fi frumos să nu mă îndemne la o bălărie ce nici măcar nu se poate compila. Cum aș putea afișa un mesaj pe Catch? Cu AwaitJustALittle? Nu că l-aș lăsa acolo dar am nevoie puțin de el să testez niște drepturi.

Sigur ați putea să îmi propuneți să scot Async din declarație care oricum e 100% degeaba (vezi întreaga documentație care se străduiește să explice că Async nu înseamnă ca se execută ceva asincron și că de fapt mai degrabă e un fel de Await în timp ce Await de fapt înseamnă… ați ghicit, exact Async!). Nu pot să îl scot pentru că deși e un complet inutil (se putea infera la compilare din prezența a cel puțin un Await dacă s-ar fi vrut), am un alt inevitabil Await care abia… așteaptă.

Albă sau neagră? Mai lasă-mă dracului și pe mine să trăiesc!

5 thoughts on “nefericire asincronă dot net”

    1. Asta e sincron sau asincron? Ca să știu pe care din cele 2 cazuri mutual exclusive te afli. Dacă ești pe asincron cum pari, te informez că în ciuda bogăției sintactice ești pe cazul cu Await care nu e tolerat de try/catch. Dacă nu, ești pe cazul 2. Cum poți fi altfel decât sincron sau asincron?

  1. Ti-am dat link; dar uite ca iti si dau „cu paste”

    Executes a delegate asynchronously on the thread that the control’s underlying handle was created on.

Dă-i un răspuns lui Aburel Anulează răspunsul

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *