gpt4 book ai didi

c# - 这是内存泄漏吗?

转载 作者:行者123 更新时间:2023-11-30 17:21:31 25 4
gpt4 key购买 nike

我有一个如下所示的类。服务器实例持有对监听器实例的引用。监听器通过事件委托(delegate)持有对服务器实例的引用。这会阻止 GC 收集服务器实例吗?如果是这样,如何打破这个循环?我应该实现 IDisposable 或覆盖 Finalize 方法还是做其他事情?

public class Server
{
public Listener Listener { get; private set; }

public Server(Listener listener)
{
Listener = listener;
Listener.ClientChannelConnected += new EventHandler<ClientChannelConnectedArgs>(listener_ClientChannelConnected);
}

void listener_ClientChannelConnected(object sender, ClientChannelConnectedArgs e)
{
...
}
}

最佳答案

没有。 .NET 垃圾收集器非常智能,可以解决循环引用问题。

关于c# - 这是内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3369020/

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