本文整理汇总了C#中Ping.SendAsyncCancel方法的典型用法代码示例。如果您正苦于以下问题:C# Ping.SendAsyncCancel方法的具体用法?C# Ping.SendAsyncCancel怎么用?C# Ping.SendAsyncCancel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ping
的用法示例。
在下文中一共展示了Ping.SendAsyncCancel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SendAsyncs_ReuseInstance_Hostname
public static async Task SendAsyncs_ReuseInstance_Hostname()
{
IPAddress localIpAddress = await TestSettings.GetLocalIPAddress();
using (Ping p = new Ping())
{
TaskCompletionSource<bool> tcs = null;
PingCompletedEventArgs ea = null;
p.PingCompleted += (s, e) =>
{
ea = e;
tcs.TrySetResult(true);
};
Action reset = () =>
{
ea = null;
tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
};
// Several normal iterations
for (int i = 0; i < 3; i++)
{
reset();
p.SendAsync(TestSettings.LocalHost, null);
await tcs.Task;
Assert.NotNull(ea);
Assert.Equal(IPStatus.Success, ea.Reply.Status);
Assert.True(ea.Reply.Address.Equals(localIpAddress));
}
// Several canceled iterations
for (int i = 0; i < 3; i++)
{
reset();
p.SendAsync(TestSettings.LocalHost, null);
p.SendAsyncCancel(); // will block until operation can be started again
}
await tcs.Task;
Assert.True(ea.Cancelled ^ (ea.Error != null) ^ (ea.Reply != null));
}
}
示例2: SendAsyncs_ReuseInstance_Hostname
public static async Task SendAsyncs_ReuseInstance_Hostname()
{
IPAddress localIpAddress = await TestSettings.GetLocalIPAddress();
using (Ping p = new Ping())
{
var mres = new ManualResetEventSlim();
PingCompletedEventArgs ea = null;
p.PingCompleted += (s, e) =>
{
ea = e;
mres.Set();
};
// Several normal iterations
for (int i = 0; i < 3; i++)
{
ea = null;
mres.Reset();
p.SendAsync(TestSettings.LocalHost, null);
mres.Wait();
Assert.NotNull(ea);
Assert.Equal(IPStatus.Success, ea.Reply.Status);
Assert.True(ea.Reply.Address.Equals(localIpAddress));
}
// Several canceled iterations
for (int i = 0; i < 3; i++)
{
ea = null;
mres.Reset();
p.SendAsync(TestSettings.LocalHost, null);
p.SendAsyncCancel(); // will block until operation can be started again
}
mres.Wait();
Assert.True(ea.Cancelled ^ (ea.Error != null) ^ (ea.Reply != null));
}
}