如果服务器在10秒内没有响应,如何使C#客户端显示超时消息

时间:2011-04-05 20:26:26

标签: c# timer client-server

我需要在C#中编写客户端和服务器,客户端需要向服务器发送请求,如果服务器在10秒内没有应答,则显示超时消息。客户端和服务器都在Console中。

现在,我的第一个问题是,类System.Threading.Timer是最好的方法吗,或者我应该调查代理的异步调用(在阅读它们之后,因为我甚至不了解它们是什么是,我刚刚建议他们)或任何其他方法?另外,如果我要使用Timer类,我理解TimerCallback这是Timer类的第一个争论,例如

Timer timer = new Timer(tcb);

是计时器滴答时执行的方法,但是当每次计时器滴答时我不需要执行任何方法但是想要在计时器完成计数后显示一条消息(例如10)时该怎么办?秒?

我已经查看过很多msdn.microsoft.com文章和论坛帖子,但是大多数人都想在每个计时器上执行一个方法,或者使用异步调用,这一切都非常令人困惑。

2 个答案:

答案 0 :(得分:1)

一种方法是使用WebRequest(或类似的东西)发出异步请求并指定超时。如果请求没有及时返回,它应该抛出一个异常,然后你可以通过显示你的消息来处理它。

或者,您可以使用Timer,并且在Timer的回调方法中,您可以显示您的消息。如果使用这种方法,当您的调用返回时,它需要停止Timer以防止显示消息。计时器只会按照您指定的频率“勾选”,在第一次“勾号”后,您可以停止计时器,使其不会执行多次。

答案 1 :(得分:1)

您的客户端 - 服务器如何通信?

在大多数通信方法中,您可以设置客户端呼叫的超时时间。

我建议您使用WCF进行客户端 - 服务器通信。