She*_*tty 3 .net c# multithreading exception
我希望我的应用程序中的一个线程执行一个任务,并在那个睡眠后持续一段特定的时间.我用Thread.Sleep()
一个TimeSpan
值作为参数.它工作正常.但是当我设置一个很大的值,比如25.20:30:40(25天20小时20分40秒),它会抛出一个ArgumentOutOfRangeException
.
http://msdn.microsoft.com/en-us/library/274eh01d(v=vs.110).aspx
例外情况
ArgumentOutOfRangeException timeout的值为负且不等于Timeout.Infinite(以毫秒为单位),或者大于Int32.MaxValue毫秒.
从配置文件中读取睡眠时间的值.在测试时,测试人员将此值设置为如上所述的高值.我感兴趣的是要知道在我提到的时间内让我的线程不做任何事情的更好方法是什么.(即使它太高了.)
Lee*_*Lee 11
文档告诉您最大时间跨度:
TimeSpan maxSleepSpan = TimeSpan.FromMilliseconds(int.MaxValue);
Run Code Online (Sandbox Code Playgroud)
这是24.20:31:23.6470000
.如果你需要睡得更久,那么你需要重新考虑你的设计.