我需要一种有效的方法来周期性地检测到某些远程端点(由ip和port指定)的已建立连接,而while(true)循环的thread.sleep为20ms。
每20毫秒我会调用ipGlobalProperties.GetActiveTcpConnections()并获取所有tcp连接并检查我指定的远程端点,但这会导致CPU使用率过高(和性能下降)。我在以下位置尝试使用httpClient进行ping操作:Checking if ip with port is available?,但没有结果。 有没有一种更快的方法来提高性能并减少CPU使用率?
IPGlobalProperties ipGlobalProperties =
IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] tcpConnInfoArray;
While(true)
{
tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();
foreach (TcpConnectionInformation tcpi in tcpConnInfoArray)
{
if (tcpi.RemoteEndPoint.Port==port && tcpi.RemoteEndPoint.IP==ip)
{
//some code
}
}
Thread.sleep(20);
}