【发布时间】:2021-01-22 02:03:28
【问题描述】:
我想知道当我第一次在函数范围内创建 TCPClient,从中提取 NetworkStream,将其传递给类的 c-tor 并返回新创建的对象时会发生什么:
{
TcpClient client = new TcpClient();
await client.ConnectAsync(host, outport).ConfigureAwait(false);
NetworkStream stream = client.GetStream();
TCPWrapperAdapterWithStream adapter = new TCPWrapperAdapterWithStream(stream, stream, 100);
return adapter;
}
离开上下文后客户端会发生什么?流仍然可以工作吗?
我可以这样做还是必须“保留”TCPClient 对象?
【问题讨论】:
-
您在调试程序时遇到问题了吗?
-
令人惊讶的是没有。但怎么可能呢?
-
嗯.. 这有点超出我的知识和专业知识,但它实际上归结为
NetworkStream类型实例上的 GC 跟踪行为,它是通过应用程序(或其他功能范围)引用\使用)。我认为如果适配器被持久化,TCPClient 会在这里持久化,因为回收它似乎有问题 - 但我不确定。
标签: c# tcpclient networkstream