C# 如果服务器未就绪或不可用,如何停止尝试通过namedpipe客户端连接到服务器

C# 如果服务器未就绪或不可用,如何停止尝试通过namedpipe客户端连接到服务器,c#,named-pipes,C#,Named Pipes,我现在正在实施我的学术项目软件,使用命名管道技术通过网络连接异构系统。我使用了.net framework 4和C语言。问题是,如果服务器未准备就绪或不可用,客户端程序将无法继续。名为pipe的客户端不断尝试连接到名为pipe的服务器,直到连接可用 我希望客户端程序能够继续其他功能,如果服务器连接在3秒内不可用(可能是任何持续时间)。与此场景类似:当客户端程序启动时,它将尝试连接到服务器。如果服务器不可用,客户端将停止尝试连接到服务器并自行脱机运行 我的问题的一些代码片段 pipeClient.

我现在正在实施我的学术项目软件,使用命名管道技术通过网络连接异构系统。我使用了.net framework 4和C语言。问题是,如果服务器未准备就绪或不可用,客户端程序将无法继续。名为pipe的客户端不断尝试连接到名为pipe的服务器,直到连接可用

我希望客户端程序能够继续其他功能,如果服务器连接在3秒内不可用(可能是任何持续时间)。与此场景类似:当客户端程序启动时,它将尝试连接到服务器。如果服务器不可用,客户端将停止尝试连接到服务器并自行脱机运行

我的问题的一些代码片段

pipeClient.Connect(); <-- this is the problem point,
frmUserprofile.show(); <-- until the connection is available, the program will not execute this line

pipeClient.Connect() 如果您使用的是
NamedPipeClientStream
类,则存在接受超时值的方法重载:

bool isConnected = false;
try
{
    pipeClient.Connect(3000);
    isConnected = true;
}
catch(TimeoutException)
{
    // failed to connect
}

如果将NamedPipeClientStream用于任务,则有一个Connect(Int32)方法会占用一定的超时时间


使用
名称管道客户端流
。它有一个连接超时

bool isConnected = false;
try
{
    pipeClient.Connect(3000);
    isConnected = true;
}
catch(TimeoutException)
{
    // failed to connect
}