问题可能是由于在使用AnonymousPipeServerStream/AnonymousPipeClientStream时没有正确地处理流的读取和写入操作而导致的。以下是解决方案:
var serverPipe = new AnonymousPipeServerStream(PipeDirection.Out);
var clientPipe = new AnonymousPipeClientStream(PipeDirection.In, serverPipe.ClientSafePipeHandle);
// server side
serverPipe.WaitForConnection();
var serverStreamWriter = new StreamWriter(serverPipe);
serverStreamWriter.AutoFlush = true;
serverStreamWriter.WriteLine("Hello from server!");
// client side
clientPipe.Connect();
var clientStreamReader = new StreamReader(clientPipe);
string message = clientStreamReader.ReadLine();
// server side
async Task WriteMessageAsync(string message)
{
await serverStreamWriter.WriteLineAsync(message);
await serverStreamWriter.FlushAsync();
}
// client side
async Task ReadMessageAsync()
{
return await clientStreamReader.ReadLineAsync();
}
// server side
serverPipe.Dispose();
// client side
clientPipe.Dispose();
以上是AnonymousPipeServerStream/AnonymousPipeClientStream在.NET/C#中无法工作的解决方案,希望对你有所帮助。