我正在编写一个套接字服务器和客户端类,它们正在通过NUnit进行测试。
我编写了一个过程,该过程将检查所有客户端(如果它们仍处于连接状态)。为此,我创建了一个线程,但是我想要的是仅每5秒运行一次此检查。我的初衷是使用Thread.Sleep()
。当我结束测试时,我正在服务器上运行Stop方法,该方法会中断所有活动线程,这导致Thread
从等待状态被干扰。
我发现通过Task.Delay().Wait()
还有其他选择,但这引起了同样的问题。
当我关闭服务器以结束此线程时,Thread.Sleep
是否还有其他替代方法?线程在条件Thread.CurrentThread.IsAlive
下运行while循环。
答案 0 :(得分:0)
正如我在其他question中回答的那样,我找到了一个更好的解决方案,因为我只想在一段时间内(例如5秒钟左右)运行检查,所以这里的最佳用法是System.Threading.Timer
类,适用于方法的牙周手术。