그래서 600 개 이상의 장치가있는 사이트가 있습니다. 표준 .NET Ping 클래스를 사용하여 하나씩 모두 핑 (ping)하려고합니다. 어떤 이유로 든이 스레드가 충돌합니다. 단지 며칠 후에 응답하지 않습니다. 네트워크에서 Ping 장치 만 있으면됩니다. 우리는 Microsoft Windows Server 2008 R2를 사용하고 있습니다. .NET ping 클래스에 문제가 있습니까? 나는 또한 핑 소리 때문에 추측하고있는 메모리 누출을 경험 한 것 같다. 나는 Win32 ping dll을 써서 나를 위해 일을해야 할까? 아니면 .NET에서 뭔가 잘못하고있는 것일까?System.Net.NetworkInformation.Ping이 충돌 함
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();
}
}
}