请举个Ping.SendAsync的例子
时间: 2024-03-12 13:47:08 浏览: 110
AsyncTask示例
5星 · 资源好评率100%
好的,下面是一个简单的Ping.SendAsync的示例,该示例使用Ping.SendAsync方法来测试指定的IP地址是否可以访问:
```csharp
using System;
using System.Net.NetworkInformation;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
string ipAddress = "127.0.0.1";
Ping pingSender = new Ping();
PingOptions options = new PingOptions();
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
CancellationToken cancellationToken = cancellationTokenSource.Token;
try
{
PingReply reply = await pingSender.SendPingAsync(ipAddress, 1000, new byte[32], options, cancellationToken);
if (reply.Status == IPStatus.Success)
{
Console.WriteLine("Ping to {0} ({1}) successful.", reply.Address.ToString(), reply.RoundtripTime);
}
else
{
Console.WriteLine("Ping to {0} failed: {1}", ipAddress, reply.Status.ToString());
}
}
catch (OperationCanceledException)
{
Console.WriteLine("Ping to {0} canceled.", ipAddress);
}
finally
{
pingSender.Dispose();
}
}
}
```
在上面的示例中,我们首先创建了一个 `Ping` 对象,然后创建了一个 `PingOptions` 对象,用于设置Ping操作的一些选项。接着,我们创建了一个 `CancellationTokenSource` 对象和一个 `CancellationToken` 对象,用于在需要时取消Ping操作。最后,我们调用 `Ping.SendPingAsync` 方法,开始异步执行Ping操作。
在Ping操作完成后,我们可以访问 `PingReply` 对象,以检查Ping操作的结果。如果Ping操作成功,我们输出成功消息,否则输出失败消息。如果Ping操作被取消,则抛出OperationCanceledException异常。最后,我们释放Ping对象。
阅读全文