gpt4 book ai didi

c# - 处理具有 2 个流的对象

转载 作者:行者123 更新时间:2023-11-30 17:14:04 26 4
gpt4 key购买 nike

以下代码生成警告。问题是我们需要管道来读写。我怎样才能安全地处理管道?

warning : CA2202 : Microsoft.Usage : Object 'pipe' can be disposed more than once in method 'ClientConnection.qaz()'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time on an object.: Lines: 465

void qaz()
{
const string THIS_SERVER = ".";
using (NamedPipeClientStream pipe = new NamedPipeClientStream(THIS_SERVER, this.Name,
PipeDirection.InOut,
PipeOptions.None))
{
using (StreamReader sr = new StreamReader(pipe))
{
string message = sr.ReadLine();
using (StreamWriter sw = new StreamWriter(pipe))
{
sw.WriteLine("ACK received");
}
}
}
}

您需要 Visual Studio 代码分析才能看到这些警告(这些不是 c# 编译器警告)。

问题是 StreamReader sr 和 StreamWriter sw 都 Dispose 对象管道。

最佳答案

您应该 iMHO 忽略警告并标记它。 StreamReader 恕我直言,不应该处理内部流。它不拥有它。

关于c# - 处理具有 2 个流的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9161429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com