C# 尝试删除时侦听器挂起
我有一个按钮连接到下面的开始和停止。多次单击按钮后,应用程序将挂起到Trace.Listeners.Remove(\u listener)上。知道为什么吗C# 尝试删除时侦听器挂起,c#,listener,trace,C#,Listener,Trace,我有一个按钮连接到下面的开始和停止。多次单击按钮后,应用程序将挂起到Trace.Listeners.Remove(\u listener)上。知道为什么吗 public void StartListener(ITraceTextSink sink) { if (_listener != null) return; _listener = new TraceSource(sink); Trace.AutoFlush = true; Trace.Listeners.A
public void StartListener(ITraceTextSink sink)
{
if (_listener != null) return;
_listener = new TraceSource(sink);
Trace.AutoFlush = true;
Trace.Listeners.Add(_listener);
}
public void StopListener()
{
if (_listener == null) return;
Trace.Listeners.Remove(_listener);
_listener.Dispose();
_listener = null;
}
套接字关闭,等待基于超时的客户端确认。如果没有正确连接客户端,它将挂起。首先,永远不要关闭与服务器的连接,因为如果客户端和服务器同时尝试关闭连接,则可能会发生潜在错误。我将实现一个Keep-Alive,它将自动关闭空闲连接。然后在尝试停止连接之前测试套接字是否关闭。不确定我是否理解。我正在对UI使用WPF跟踪项。侦听器是TCP套接字。好的,谢谢您提供的信息!我将尝试其他方法。