Thread.sleep() 为什么暂停时间不对? 我用Thread.sleep(2000),要暂停程序2秒钟,可是我发现暂停的时间根本没有2秒,有的时候很快就到了。我把时间设置大点,如5000毫秒,还是一样的。这是怎么回事?如精确的控制暂停的时间呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的代码是模拟鼠标和键盘输入的,理想的是每模拟一次输入,都暂停个几秒,等界面变化后,在进行下次模拟输入//点击再次群发 SetCursorPos(200, 800); mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero); //全选按钮 SetCursorPos(420, 85); mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero); Thread.Sleep(2000); //下一步按钮 SetCursorPos(250, 800); mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero); Thread.Sleep(2000); //点击输入框 SetCursorPos(150, 800); mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero); Thread.Sleep(1000); 但是发现,每次模拟输入完了之后,等待的时间并不是sleep里面的时间,就这造成了,界面还没有变化,就开始下一次模拟输入了。我改了时间,但是效果不明显 这个不是阻塞调用它的父线程,直到线程结束才返回父线程嘛?是的,我想知道对你的程序有效吗?我试了下,和sleep的效果差不多,但是我发现了一个奇怪的现象for (int i = 0; i < 2; i++) { Thread.Sleep(3000); SetCursorPos(50, 100); mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero); //Thread.Sleep(3000); }这个代码我是要点击三次,每次点击之间暂停3000毫秒,假如我把sleep放在mouse_event后面,时间久不太准备,而且,经常出现只点击了两下的情况。但是我无意中把sleep放到了循环的开头哪里,就是上面的代码,发现时间就准确多了,最关键的是每次运行都是点击了三次。不知道怎么回事,发现一旦用了线程之后奇怪的事情很多 这个不是阻塞调用它的父线程,直到线程结束才返回父线程嘛?是的,我想知道对你的程序有效吗?我试了下,和sleep的效果差不多,但是我发现了一个奇怪的现象for (int i = 0; i < 3; i++) { Thread.Sleep(3000); SetCursorPos(50, 100); mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero); //Thread.Sleep(3000); }这个代码我是要点击三次,每次点击之间暂停3000毫秒,假如我把sleep放在mouse_event后面,时间久不太准备,而且,经常出现只点击了两下的情况。但是我无意中把sleep放到了循环的开头哪里,就是上面的代码,发现时间就准确多了,最关键的是每次运行都是点击了三次。不知道怎么回事,发现一旦用了线程之后奇怪的事情很多错了,刚才敲错了,i=3,不是等于2。问题还是那样,sleep前后顺序影响了点击的次数和时间不对劲 lz看看这个帖子:What Thread sleep method is most precise: Monitor.Wait vs System.Timer vs DispatchTimer vs Threading.Timerhttp://stackoverflow.com/questions/10609718/what-thread-sleep-method-is-most-precise-monitor-wait-vs-system-timer-vs-dispatHow accurate is Thread.Sleep(TimeSpan)?http://stackoverflow.com/questions/1303667/how-accurate-is-thread-sleeptimespan 为什么主页中的iframe所连接的页面报$未定义!!! 在线等!如何使DLL里的窗体 放到主调程序的tab控件里??? WCF在win2003上是否可行? asp怎么判断asp:checkbox是否被选中 计算题 winform 快速创建1000个windows用户 GridView添加数据 关于C#datagridview 打印问题 关于onpropertychange的问题 WMEncoder 9 Series SDK问题,急!! 关于C#绘图问题 System.IO.StreamWriter将数据导出Excel时 很多数据不见了
我的代码是模拟鼠标和键盘输入的,理想的是每模拟一次输入,都暂停个几秒,等界面变化后,在进行下次模拟输入//点击再次群发
SetCursorPos(200, 800);
mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
//全选按钮
SetCursorPos(420, 85);
mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
Thread.Sleep(2000);
//下一步按钮
SetCursorPos(250, 800);
mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
Thread.Sleep(2000);
//点击输入框
SetCursorPos(150, 800);
mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
Thread.Sleep(1000);
但是发现,每次模拟输入完了之后,等待的时间并不是sleep里面的时间,就这造成了,界面还没有变化,就开始下一次模拟输入了。我改了时间,但是效果不明显
这个不是阻塞调用它的父线程,直到线程结束才返回父线程嘛?
是的,我想知道对你的程序有效吗?我试了下,和sleep的效果差不多,但是我发现了一个奇怪的现象for (int i = 0; i < 2; i++)
{
Thread.Sleep(3000);
SetCursorPos(50, 100);
mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
//Thread.Sleep(3000);
}
这个代码我是要点击三次,每次点击之间暂停3000毫秒,假如我把sleep放在mouse_event后面,时间久不太准备,而且,经常出现只点击了两下的情况。但是我无意中把sleep放到了循环的开头哪里,就是上面的代码,发现时间就准确多了,最关键的是每次运行都是点击了三次。不知道怎么回事,发现一旦用了线程之后奇怪的事情很多
这个不是阻塞调用它的父线程,直到线程结束才返回父线程嘛?
是的,我想知道对你的程序有效吗?我试了下,和sleep的效果差不多,但是我发现了一个奇怪的现象for (int i = 0; i < 3; i++)
{
Thread.Sleep(3000);
SetCursorPos(50, 100);
mouse_event(MouseEventFlag.LeftDown | MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
//Thread.Sleep(3000);
}
这个代码我是要点击三次,每次点击之间暂停3000毫秒,假如我把sleep放在mouse_event后面,时间久不太准备,而且,经常出现只点击了两下的情况。但是我无意中把sleep放到了循环的开头哪里,就是上面的代码,发现时间就准确多了,最关键的是每次运行都是点击了三次。不知道怎么回事,发现一旦用了线程之后奇怪的事情很多错了,刚才敲错了,i=3,不是等于2。问题还是那样,sleep前后顺序影响了点击的次数和时间不对劲
http://stackoverflow.com/questions/10609718/what-thread-sleep-method-is-most-precise-monitor-wait-vs-system-timer-vs-dispatHow accurate is Thread.Sleep(TimeSpan)?
http://stackoverflow.com/questions/1303667/how-accurate-is-thread-sleeptimespan