私は次のコードを持っています
ThreadPool.QueueUserWorkItem(new WaitCallback(DownloadAsync), apiMethod);
downloadHandle.WaitOne();
DownloadAsync の場所
private void DownloadAsync(object _uri)
{
var url = _uri as string;
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(new Uri(GLOBALS.MAIN_API_URL + url, UriKind.Absolute));
}
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
result = e.Result;
downloadHandle.Set();
}
したがって、私の問題は、 downloadHandle. Set() が呼び出されないことです。しかし、私はなぜ理解していないのですか?私は DownloadAsync の新しいスレッドを作成し、downloadHandle.WaitOne() は彼をブロックすべきではありません。
私が必要とするのは、Async の代わりに Sync メソッドを作成することです。
ありがとう!
UPD: 非同期呼び出しでソース コードを更新しました。