我打开页面时需要ping 12台服务器ips。我试过这个(1 ip):
public int sisup;
public void Page_Load(object sender, EventArgs e)
{
Ping p = new Ping();
PingReply r;
String s = "10.1.1.1";
r = p.Send(s);
Response.Buffer = false;
if (r.Status == IPStatus.Success)
{
sisup = 1;
}
else
{
sisup = 0;
}
}
用sisup做点什么。它工作正常,但速度很慢。由于ping,页面加载需要几秒钟。如果没有页面加载,我怎么能这样做?页面加载后我可以这样做吗?或者ping的任何建议?我只需要服务器上升或下降,并做一些事情。
或许我可以设置ping响应时间。它是本地网络,响应时间仅1-2毫秒。我认为ping等待回复这么久。
答案 0 :(得分:2)
您应该考虑使用Parallel.For
。
Parallel.For(0, 12, i =>
{
// ping each server
});
这样所有ping都会并行运行,你的响应时间会低10倍左右。
或者你可以使用jQuery在页面加载后ping,以进行AJAX调用。
$.ajax("PingServer.url")
.done(function() {
alert("success");
})
.fail(function() {
alert("error");
});
这项工作要多一点,但这样做会更好。