Есть только несколько причин, по которым я могу видеть, что вы можете поверить, что вам нужно это ожидание блокировки.Либо вы не знаете, что вам следует продолжить работу с кодом в завершенном событии, либо у вас есть другое локальное состояние, которое вы не включили в пример кода, к которому у процедуры ReadCompleted
нет доступа.* Вот некоторый код котельной пластины для обработки загруженного потока: -
string dummy = "Some value"; // local value you still need to access when download complete
WebClient wc = new WebClient();
wc.OpenReadCompleted += (s, args)
{
if (!args.Cancelled)
{
try
{
Stream stream = args.Stream; // This is the data you are after
// Do stuff with stream, note the dummy variable is still accessible here.
}
catch (Exception err)
{
//Do something sensible with the exception to make sure its surfaced
}
}
};
sender.OpenReadAsync(new Uri(this.url+"?blob="+BODY, UriKind.Relative));