我正在写一个socket服务器和客户端类,我正在通过NUnit测试。
我写了一个进程,用来检查所有的客户端是否还在连接。对于这个过程,我创建了一个线程,但我想的是每隔5秒才运行一次检查。我的初衷是使用 Thread.Sleep()
. 当我结束测试时,我在服务器上运行Stop方法,中断了所有的活动线程,这就导致了 Thread
被从等待的状态中被打断。
我发现有替代的方法,通过 Task.Delay().Wait()
但这也造成了同样的问题。
有没有其他的替代方法来解决这个问题?Thread.Sleep
当我关闭服务器时,我可以用什么其他方法来结束这个线程?该线程正在运行while循环,条件是 Thread.CurrentThread.IsAlive
.
在我的其他问题中已经回答了 疑问我找到了一个更好的解决方案,因为我想只在一段时间内(比如5秒左右)运行检查,这里好的用法是 System.Threading.Timer
类,它适合于方法的周期性运行。