请教大家一个困扰了我很久的问题啊,关于VC++中多线程中Sleep
现在的现象是这样的:在线程中使用while死循环,利用定时器计算这个线程中while的执行次数,待次数稳定时候结果如下
当Sleep(1)的时候计算出循环每秒执行的次数是64
当Sleep(10)的时候计算出循环每秒执行的次数是64
当Sleep(20)的时候计算出循环每秒执行的次数是32
当Sleep(30)的时候计算出循环每秒执行的次数是32
当Sleep(40)的时候计算出循环每秒执行的次数是21
当Sleep(50)的时候计算出循环每秒执行的次数是16
当Sleep(60)的时候计算出循环每秒执行的次数是15、16
当Sleep(70)的时候计算出循环每秒执行的次数是12,13
当Sleep(80)的时候计算出循环每秒执行的次数是10,11
当Sleep(90)的时候计算出循环每秒执行的次数是9,10
当Sleep(100)的时候计算出循环每秒执行的次数是9
第一、为什么会有这样的结果?
第二、我想知道有没有办法提高循环每秒执行的次数,而且最好不要占用较高的CPU?
第三、当我在循环之内加入一个for循环68次执行Sleep(1), 那么每秒执行的次数是1,为什么?