2016-10-19 8 views
0

:오류는 시도/캐치에 걸려에 없습니다에서 명명 된 파이프를 통해 데이터를 전송하기 위해 다음 코드를 사용하고

: 때때로

public void send(byte[] message, int timeOut = 1000) 
{ 
    try 
    { 
     NamedPipeClientStream pipeStream = new NamedPipeClientStream(".", "TestPipe1234", PipeDirection.Out, PipeOptions.Asynchronous); 

     pipeStream.Connect(timeOut); 
     pipeStream.BeginWrite(message, 0, message.Length, aSyncSend, pipeStream); 
    } 
    catch (TimeoutException ex) 
    { 
     Debug.WriteLine(ex.Message); 
    } 
} 

, 나는 다음과 같은 오류가 나타날 수

System.IO.IOException : 세마포어 시간 초과 기간이 만료되었습니다.

System.IO .__ Error.WinIOError (INT32 errorCode를 문자열 maybeFullPath) System.IO.Pipes.NamedPipeClientStream.Connect에서

(INT32 시간 초과)

[...]

에서

언제 이런 일이 일어날 지 잘 모르겠다. (아무도 상대방의 말을 듣지 않는다.) 어쨌든이 오류가 try catch 블록에 의해 잡히지 않는 이유를 모르겠다.

무슨 일이 일어나고 있는지 아십니까? 어떤 도움도 환영합니다.

+2

간단한 캐치를 사용하십시오. catch (Exception) { } –

답변

1

시도해보십시오.

try 
{ 
    NamedPipeClientStream pipeStream = new NamedPipeClientStream(".", "TestPipe1234", PipeDirection.Out, PipeOptions.Asynchronous); 

    pipeStream.Connect(timeOut); 
    pipeStream.BeginWrite(message, 0, message.Length, aSyncSend, pipeStream); 
} 
catch (Exception) 
{ 
}