Код:Темы - ResetEvent и WebClient
public string GetTextWebRequest(string url)
{
WebClient cl = new WebClient();
cl.DownloadStringCompleted += new DownloadStringCompletedEventHandler(cl_DownloadStringCompleted);
cl.DownloadStringAsync(new Uri(url));
are.WaitOne();
return _textdata;
}
void cl_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
_textdata = e.Result;
are.Set();
}
Почему я не использую метод 'DownloadString'? Потому что я использую компактную структуру, и async - единственный вариант, который у меня есть.
Во всяком случае, моя проблема - «DownloadStringCompleted» не вызывается, если основной (вызывающий) поток заблокирован. И таким образом никогда не разблокируется.
Мои единственные мысли в том, что WebClient вызывает «DownloadStringCompleted» в вызывающем потоке, что не имеет смысла?
Я немного потерян.
ahhh, я так и думал. Хорошо спасибо за подтверждение. – Peanut