C# 如果服务器没有';t在10秒钟内作出反应

C# 如果服务器没有';t在10秒钟内作出反应,c#,timer,client-server,C#,Timer,Client Server,我需要用C#编写一个客户端和一个服务器,客户端需要向服务器发送一个请求,如果服务器在10秒内没有响应,则显示一条超时消息。客户端和服务器都在控制台中 现在,我的第一个问题是,类System.Threading.Timer是实现这一点的最佳方法,还是应该研究代理的异步调用(在阅读了它们之后,因为我甚至不了解它们是什么,我只是被建议使用它们)还是其他方法?另外,如果我要使用Timer类,我知道TimerCallback是Timer类的第一个参数,例如 Timer timer = new Timer(

我需要用C#编写一个客户端和一个服务器,客户端需要向服务器发送一个请求,如果服务器在10秒内没有响应,则显示一条超时消息。客户端和服务器都在控制台中

现在,我的第一个问题是,类
System.Threading.Timer
是实现这一点的最佳方法,还是应该研究代理的异步调用(在阅读了它们之后,因为我甚至不了解它们是什么,我只是被建议使用它们)还是其他方法?另外,如果我要使用Timer类,我知道
TimerCallback
是Timer类的第一个参数,例如

Timer timer = new Timer(tcb);
是当计时器计时时执行的方法,但是当我不需要在每次计时器计时时执行任何方法,而是想在计时器计时完成后显示一条消息(比如10秒)时,我该怎么办


我已经阅读了很多msdn.microsoft.com的文章和论坛帖子,但是大多数人都希望在每个计时器上执行一个方法,或者使用异步调用,这一切都非常混乱。

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


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

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

在大多数通信方法中,您可以设置客户端调用的超时


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

只需使用与服务器通信的方法在10秒内超时即可?(不知道沟通是如何进行的。)我会尝试一下,然后在这里再次发布结果。非常感谢。