Diciamo che questo metodo getPhotoAsync
può essere invocato alcune volte al secondo e che le risposte dal server remoto possono richiedere da mezzo secondo a trenta secondi, a seconda della dimensione del payload. Quindi ci saranno diverse richieste concorrenti in sospeso. .NET tiene traccia di "dietro le quinte" di quale risposta va con quale richiesta? C'è qualche possibilità che info
possa essere associato alla risposta sbagliata dal server remoto?
public async Task<PhotoWithInfo> getPhotoAsync(object info, string photoid)
{
//<snip> build url with photoid
var request = WebRequest.Create(new System.Uri(url));
var response = await request.GetResponseAsync();
byte[] photo=null;
// <snip> read the response stream and return a byte array
photo = myMemoryStream.ToArray();
var foo = new PhotoWithInfo();
foo.bytes = photo;
foo.Info = info;
return foo;
}