社区
C#
帖子详情
如何让子线程暂停几秒
xiaoxiaosu2011
2011-06-24 02:41:54
如题
子线程暂停几秒向下执行,但是不能影响主线程
不能用thread.sleep(1000);
...全文
3207
63
打赏
收藏
如何让子线程暂停几秒
如题 子线程暂停几秒向下执行,但是不能影响主线程 不能用thread.sleep(1000);
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
63 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pysdxf
2011-10-28
打赏
举报
回复
这个完全可行啊。Thread.sleep()不会阻塞主线程。
laizhiping_rj
2011-08-21
打赏
举报
回复
thread.IsBackground = true;
thread.sleep(n*1000);
Lucky_6Q
2011-08-21
打赏
举报
回复
[Quote=引用 39 楼 playdycc 的回复:]
楼主好像已经找到原因了。
说下理论:
如果是同步启动的子线程,必然会阻塞主线程。
如果是异步启动的子线程,不会阻塞主线程。
[/Quote]有道理
南山行者
2011-08-21
打赏
举报
回复
好像也只有Thread.Sleep()能暂停了啊
auogsy
2011-08-21
打赏
举报
回复
Thread.Sleep()
feixuyue
2011-08-20
打赏
举报
回复
这个最简单了[Quote=引用 7 楼 yanran_hill 的回复:]
AutoResetEvent waiter = new AutoResetEvent(false);
waiter.waitone(1000);
waiter.Close();
[/Quote]
THwudi1990
2011-08-20
打赏
举报
回复
sleep() 是个静态的方法,直接类型. 就出来了
supercpu123
2011-06-30
打赏
举报
回复
[Quote=引用 14 楼 xiaoxiaosu2011 的回复:]
引用 13 楼 criedshy 的回复:
引用 12 楼 xiaoxiaosu2011 的回复:
引用 11 楼 criedshy 的回复:
在子线程里加Thread.Sleep(XX);
会影响主线程的
晕,Thread.Sleep()是阻塞当前线程啊,怎么影响到了主线程?
主线程会卡啊
[/Quote]
让我猜猜你的情况
是不是你主线程里定义了个对象,然后这个对象你定义成了全局变量
然后呢,子线程又调用了这个对象里的方法,结果你想在这个方法里休息几秒
这时候不管怎么弄,主线程都被卡住,是不是?
dqdq1023
2011-06-30
打赏
举报
回复
用wait试下吧,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使用sleep方法让出了cpu,但其他被同步锁挡住了的线程也无法得到执行。
开发者孙小聪
2011-06-30
打赏
举报
回复
解决了吗饿? 怎么解决的?
goonfighting
2011-06-30
打赏
举报
回复
把什么是线程搞清楚,再来问。
damnhe
2011-06-29
打赏
举报
回复
建议使用信号量来处理线程的暂停或等待,利用计时器来控制时间的长短,
跳出传统的supend,sleep,join方式 ,看一遍System.Thread下面的api,你会有很大收获
孤单北风
2011-06-29
打赏
举报
回复
[Quote=引用 17 楼 xiaoxiaosu2011 的回复:]
汗,我重新说明白一点啊
System.Timer.Timer这个的Elapsed事件里有个
for(int i=0;i<1000;i++)
{
Thread.Sleep(3000);
//这里有执行方法
}
原来的方法是这样的,可是我发现Thread.Sleep(3000)导致主线程假死没反应
[/Quote]
定时器是在主线程运行的,当然会阻塞
zengguoyu
2011-06-29
打赏
举报
回复
[Quote=引用 16 楼 gxttr 的回复:]
引用 14 楼 xiaoxiaosu2011 的回复:
引用 13 楼 criedshy 的回复:
引用 12 楼 xiaoxiaosu2011 的回复:
引用 11 楼 criedshy 的回复:
在子线程里加Thread.Sleep(XX);
会影响主线程的
晕,Thread.Sleep()是阻塞当前线程啊,怎么影响到了主线程?
主线程会卡……
[/Quote]
Thread.Sleep(N*1000) 当前线程阻塞N秒,放在哪个线程里面就阻塞哪个线程
_iorilan
2011-06-29
打赏
举报
回复
线程池来做
心蓝无敌
2011-06-28
打赏
举报
回复
[Quote=引用 17 楼 xiaoxiaosu2011 的回复:]
汗,我重新说明白一点啊
System.Timer.Timer这个的Elapsed事件里有个
for(int i=0;i<1000;i++)
{
Thread.Sleep(3000);
//这里有执行方法
}
原来的方法是这样的,可是我发现Thread.Sleep(3000)导致主线程假死没反应
[/Quote]
这个事件是在主线程里面执行,当然会阻塞主线程了。
心蓝无敌
2011-06-28
打赏
举报
回复
[Quote=引用 6 楼 xiaoxiaosu2011 的回复:]
引用 5 楼 flyerwing 的回复:
thread.sleep(n*1000);
这个会阻塞主线程不行
有没有其它办法,比如计算时间差
[/Quote]
不会阻塞主线程的,除非你的code出了问题!
大工在大河南
2011-06-28
打赏
举报
回复
学习了,暂停的这么多方法!
shaofei830927
2011-06-27
打赏
举报
回复
[Quote=引用 6 楼 xiaoxiaosu2011 的回复:]
引用 5 楼 flyerwing 的回复:
thread.sleep(n*1000);
这个会阻塞主线程不行
有没有其它办法,比如计算时间差
[/Quote]
在子线程里 写这句话 不会影响(就是你说的阻塞)主线程,主要问题是这个东西不能称之为阻塞
足球中国
2011-06-27
打赏
举报
回复
微软又不是没有提供这个api.
DWORD SuspendThread(HANDLE hThread);
搞winform要了解这些东西。
加载更多回复(39)
JAVA多
线程
精讲下
本课程是《零基础学Java》系列课程中的多
线程
相关课程.授课形式延续了之前课程的授课风格。内容细腻、详尽,由浅入深!通过本门课程的学习你可以深刻理解Java多
线程
的原理及实现运行机制,深刻学习多
线程
的生命周期、调度、控制等内容。多
线程
精讲下课程内容涵盖如下:l
线程
的同步(
线程
安全问题)l
线程
的死锁l
线程
间通信l
线程
组l
线程
池l 多
线程
的第三种实现方案l 匿名内部类方式使用多
线程
l 定时器的使用l 多
线程
面试题
如何让正在运行的
线程
暂停
一段时间
可以使用Thread类的Sleep()方法让
线程
暂停
一段时间。 需要注意的是,这并不会让
线程
终止,一旦从休眠中唤醒
线程
,
线程
的状态将会被改变为Runnable,并且根据
线程
调度,它将得到执行。 ...
C++优雅地开启/
暂停
/停止
线程
——基于观察者模式
在编程中经常需要创建子
线程
来执行耗时的任务,避免主
线程
卡死,提高程序性能。其中有很多业务场景需要我们可以自由控制子
线程
的开启/
暂停
/终止。比如音视频播放器,除了用来操作ui控件的GUI主
线程
外,还有音视频数据解封装
线程
、视频解码
线程
、音频解码
线程
。用户按下“播发”按钮要能开始播放视频(开启所有子
线程
),用户按下“
暂停
”按钮要能
暂停
播放视频(
暂停
所有子
线程
”,用户按下“停止”按钮要能结束播放视频(终止所有子
线程
)。针对这种业务场景我们需要有个机制:当用户按下某个按钮后,GUI主
线程
可以通知所有的子
线程
开启/暂
python
线程
的
暂停
与继续_
线程
暂停
与继续实现
C#
线程
暂停
与继续解决方案昨天, 老师要我们每个人交一个关于黑客方面的程序,想了半天发现端口扫描工具好像好写点,从昨天写到今天基本快完成了,给大家看下效果,不要笑话我哦哦(~~)图1 端口扫描器这个程序里面有一些地方不太满意,就是扫描的
暂停
与继续实现时,使用的是Thread.Suspend和Thread.Resume而这两个方法,在VS2010里提示已经过时,不建议使用,在网上查阅了一些资料,发...
线程
暂停
和唤醒的多种方式
线程
通信个人理解为当一个
线程
A执行到某个特定条件时,通知其他
线程
继续执行
C#
110,533
社区成员
642,574
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章