In momentul de fata exista diferite paternuri care sunt folosite pentru apeluri asyncrone. Am observat ca destul de multa lume incurca aceste paternuri si se face un mix intre acestea. Din cate am observat pana acuma exista 3 paternuri principale care sunt folosite in general in .NET (mai putin 4.5, despre care o sa vorbim separat). EAP (Event based Asynchronous Pattern) - in acest patern orice schimbare de stare (actiune se termina de executat, apare o eroare, progresul) sunt notificate prin intermediul unor evenimente. public class FooEAP { public void CalculateAsync(int value1, int value2) { int sum = value1 + value2; OnCalculateComplete(sum); } public event CalculateCompleteEventHandler CalculateComplete; private void OnCalculateComplete(int result) { if( CalculateComplete != null ) { CalculateComplete(this, new FooCalculateEventArgs(result)); } } } APM (Asynchronous Programming Model) - paternul este destul de usor de recunoscut prin format...
DREAMER, CRAFTER, TECHNOLOGY ENTHUSIAST, SPEAKER, TRAINER, AZURE MVP, SOLVING HARD BUSINESS PROBLEMS WITH CUTTING-EDGE TECHNOLOGY