4

現在、名前付きパイプテクノロジーを使用して、ネットワークを介して異種システムを接続するアカデミックプロジェクトソフトウェアを実装しています。.net Framework 4とC#言語を使用しました。問題は、サーバーの準備ができていないか利用できない場合、クライアントプログラムを続行できないことです。パイプという名前のクライアントは、接続が利用可能になるまで、パイプという名前のサーバーへの接続を継続的に試行します。

サーバー接続が3秒以内に利用できない場合(任意の期間)、クライアントプログラムが他の機能を続行できるようにしたい。このシナリオのように:クライアントプログラムが開始されると、サーバーへの接続を試みます。サーバーが利用できない場合、クライアントはサーバーへの接続の試行を停止し、それ自体でオフラインで実行します。

私の問題のいくつかのコードスニペット...

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

私が得たい解決策...

pipeClient.Connect()
if (3 seconds is over && server connection is unavailable) <-- this is what I need    
{  pipeClient stops try to connect;  }

frmUserprofile.show(); 

誰かが私にいくつかの実用的な解決策を与えるのを手伝ってくれますか...ところで、私はあなたがC#言語でこの問題を解決できるなら、C#で答えてください、しかし必ずしも事前に感謝する必要はありません...

4

3 に答える 3

5

NamedPipeClientStreamクラスを使用している場合はConnect(int)、タイムアウト値を受け入れるメソッドのオーバーロードがあります。

bool isConnected = false;
try
{
    pipeClient.Connect(3000);
    isConnected = true;
}
catch(TimeoutException)
{
    // failed to connect
}
于 2012-08-02T03:43:23.490 に答える
0

タスクにNamedPipeClientStreamを使用する場合、タイムアウトの量をとるConnect(Int32)メソッドがあります

http://msdn.microsoft.com/en-us/library/bb355337.aspx

于 2012-08-02T03:43:44.000 に答える
0

を使用しNamedPipeClientStreamます。接続タイムアウトがあります。

NamedPipeClientStream.Connectを参照してください

于 2012-08-02T03:44:36.217 に答える