private void DoWithCallback(IAsyncResult ar) { try { AsyncOperation op = (AsyncOperation)ar.AsyncState; WebResponse response = op.Request.EndGetResponse(ar); Stream resStream = response.GetResponseStream(); MemoryStream memStream = new MemoryStream(); resStream.CopyStreamTo(memStream); resStream.Dispose(); #if WINDOWS_STOREAPP response.Dispose(); #else response.Close(); #endif memStream.Seek(0, SeekOrigin.Begin); op.Callback(new StorageFile(op.Request.RequestUri.AbsoluteUri, memStream)); memStream.Dispose(); foreach (var trig in triggers.FindAll(t => t.ops.Any(o => o.Result == ar))) { trig.triggered++; } } catch (WebException) { // Return if aborted return; } }