我创建了一个WPF应用程序.我的应用程序中运行了两个线程:
当我通过单击窗口关闭按钮关闭应用程序时,它显示没有错误.但是,当我再次启动应用程序时,它会抛出异常:
Unable to start Listrner : Only one usage of each socket address
(protocol/network address/port) is normally permitted
Run Code Online (Sandbox Code Playgroud)
当我重新启动我的PC时,它第一次成功运行,但在关闭应用程序时,它不能再次运行
你不应该杀死你的线程.
你应该做的是为他们提供一个很好的方式来完成.在应用程序结束时,您应该设置一些变量:
volatile bool shouldClose;
Run Code Online (Sandbox Code Playgroud)
在弹出下一个包并在那里制造无限循环之前,在你的线程中使用该变量.
至于主应用程序,它应该等待你的线程完成.
对于volatile关键字看到文档.