I have a class shown below. The server instance contains a reference to the listener instance. The listener refers to the server instance through the event delegate. Will this stop the GC from building the server instance? If so, how to break this loop? Should I implement IDisposable or override the Finalize method or do something else?
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)
{
...
}
}
source
share