つまり、600を超えるデバイスがあるサイトがあります。標準の.NETpingクラスを使用して、それらすべてに1つずつpingを実行しようとしています。何らかの理由で、このスレッドはクラッシュしています-数日後に応答を停止します。ネットワーク上のデバイスにpingを実行するだけです。Microsoft Windows Server2008R2を使用しています。.NET pingクラスに問題はありますか?また、pingが原因であると推測されるメモリリークが発生しているようです。私は私のために仕事をするためにwin32pingdllを書くべきですか、それとも.NETで何か間違ったことをしていますか?
private void PingDevice(out bool state, string IP)
{
PingReply pingReply;
System.Net.NetworkInformation.Ping pingSender = null;
state = false;
try
{
pingSender = new System.Net.NetworkInformation.Ping();
pingReply = pingSender.Send(IP, 4000);
state = (pingReply.Status == IPStatus.Success); // comms is on/off
}
catch (Exception ex)
{
PingGlobals.driverThread.LogIt("$E Pinging Devices:" + ex.Message + ", " + IP);
}
finally
{
if (pingSender != null)
{
((IDisposable)pingSender).Dispose();
}
}
}