c#等待iasyncresult
时间: 2023-10-25 17:10:01 浏览: 45
在C#中,可以使用`AsyncWaitHandle`属性来等待IAsyncResult`的完成。以下是一个示例代码:
```csharp
using System;
using System.Net;
using System.Threading;
class Program
{
static void Main()
{
WebClient client = new WebClient();
IAsyncResult result = client.DownloadStringAsync(new Uri("https://www.example.com"));
// 使用AsyncWaitHandle等待异步操作完成
result.AsyncWaitHandle.WaitOne();
// 在这里继续处理完成后的操作
string html = client.Result;
Console.WriteLine(html);
// 关闭和释放资源
client.Dispose();
result.AsyncWaitHandle.Dispose();
}
}
```
在上面的示例中,我们使用`WebClient`类来异步下载网页内容。然后,我们使用`result.AsyncWaitHandle.WaitOne()`来等待异步操作完成。一旦异步操作完成,我们可以继续处理结果。
请注意,在使用`AsyncWaitHandle`时,确保在完成后调用`Dispose()`方法释放相关资源。