var client = new WebClient();
client.DownloadStringCompleted += (sender, e) =>
{
// 結果受信処理・・・
};
client.DownloadStringAsync(uri);
これを同期的に実行させたければ、1枚ラッピングしてあげればOKです。
public static class SyncWebClient
{
public static string DownloadStrings(Uri uri)
{
var autoReset = new AutoResetEvent(false);
DownloadStringCompletedEventArgs args = null;
var client = new WebClient();
client.DownloadStringCompleted += (sender, e) =>
{
args = e;
autoReset.Set();
};
client.DownloadStringAsync(uri);
autoReset.WaitOne(30000);
if (args == null)
{
throw new Exception("HTTPリクエストタイムアウト");
}
if (args.Error != null)
{
throw (Exception)args.Error;
}
return (string)args.Result;
}
}
OpenFileも同様に実装できますねー。
0 件のコメント:
コメントを投稿