社区
C#
帖子详情
C# Winform版 现有两个线程,怎么先后调用呢?
wudongdelinghuen
2012-03-20 03:38:00
请问下,如果有这两个线程
Thread thread1 = new Thread(new ThreadStart(speed));
Thread thread2 = new Thread(new ThreadStart(time)); speed和time是俩方法名。
怎么在程序里先后调用呢? 需要调用thread1三秒钟的时候,thread2不动。 thread1调用完后就暂停,然后调用thread2三秒钟。怎么设置噢?
...全文
220
9
打赏
收藏
C# Winform版 现有两个线程,怎么先后调用呢?
请问下,如果有这两个线程 Thread thread1 = new Thread(new ThreadStart(speed)); Thread thread2 = new Thread(new ThreadStart(time)); speed和time是俩方法名。 怎么在程序里先后调用呢? 需要调用thread1三秒钟的时候,thread2不动。 thread1调用完后就暂停,然后调用thread2三秒钟。怎么设置噢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cjnkd
2012-03-20
打赏
举报
回复
AutoResetEvent和ManualResetEvent这两个类经常用到, 他们的用法很类似,但也有区别。Set方法将信号置为发送状态,Reset方法将信号置为不发送状态,WaitOne等待信号的发送。可以通过构造函数的参数值来决定其初始状态,若为true则非阻塞状态,为false为阻塞状态。如果某个线程调用WaitOne方法,则当信号处于发送状态时,该线程会得到信号, 继续向下执行。其区别就在调用后,AutoResetEvent.WaitOne()每次只允许一个线程进入,当某个线程得到信号后,AutoResetEvent会自动又将信号置为不发送状态,则其他调用WaitOne的线程只有继续等待.也就是说,AutoResetEvent 一次只唤醒一个线程;而ManualResetEvent则可以唤醒多个线程,因为当某个线程调用了ManualResetEvent.Set()方法后,其他调l用WaitOne的线程获得信号得以继续执行,而ManualResetEvent不会自动将信号置为不发送。也就是说,除非手工调用了 ManualResetEvent.Reset()方法,则ManualResetEvent将一直保持有信号状态,ManualResetEvent也就可以同时唤醒多个线程继续执行。
Mutex混合了 AutoResetEvent与anualResetEvent的一些特性,简单来说:
1.Mutex和AutoResetEvent一样,只能允许一个线程进入。当一个线程获得许可之后,其它等待的线程必须继续等待;
2.Mutex和ManualResetEvent一样,必须手动释放许可证,即调用Mutex.ReleaseMutex()方法。
hoken2020856
2012-03-20
打赏
举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
timer,3秒间隔,先暂停2,然后1执行,下一次就是2执行,1暂停
[/Quote]
Suspend(),Resume()
wudongdelinghuen
2012-03-20
打赏
举报
回复
不是,thread1在三秒后还没有完成,不过三秒后要先运行thread2 然后再反过来运行thread1,循环。
[Quote=引用 5 楼 wudongdelinghuen 的回复:]
啊,我不太会这个,能说详细点么
引用 2 楼 stonespace 的回复:
用ManualResetEvent等同步对象控制,
[/Quote]
烟波钓
2012-03-20
打赏
举报
回复
[Quote=引用楼主 wudongdelinghuen 的回复:]
请问下,如果有这两个线程
Thread thread1 = new Thread(new ThreadStart(speed));
Thread thread2 = new Thread(new ThreadStart(time)); speed和time是俩方法名。
怎么在程序里先后调用呢? 需要调用thread1三秒钟的时候,thread2不动。 thread1调用完后就暂停……
[/Quote]
流程有点乱挖
thread1再3秒内就完成了 应该如何调用呢?直接是后者?
wudongdelinghuen
2012-03-20
打赏
举报
回复
啊,我不太会这个,能说详细点么
[Quote=引用 2 楼 stonespace 的回复:]
用ManualResetEvent等同步对象控制,
[/Quote]
wudongdelinghuen
2012-03-20
打赏
举报
回复
您好,能说详细点么?暂停是用sleep还是abort呢?如果可以帮我打可以么?
[Quote=引用 1 楼 bdmh 的回复:]
timer,3秒间隔,先暂停2,然后1执行,下一次就是2执行,1暂停
[/Quote]
stonespace
2012-03-20
打赏
举报
回复
用ManualResetEvent等同步对象控制,
bdmh
2012-03-20
打赏
举报
回复
timer,3秒间隔,先暂停2,然后1执行,下一次就是2执行,1暂停
c#
Winform
异步
线程
刷新UI
使用开发工具为VS2013;.net:4.0 多
线程
异步刷新ui界面,实时获取任务进度并进行反馈。
C#
WinForm
两种等待窗体的实现
C#
两种等待窗体的实现 做
C#
开发过程中,数据交互难免要等待,为了避免假死状态,特找到这两种等待窗体的实现
C#
写
winform
调用
webservice例子(经典)
vs2005 vs2008皆可 这个是我当初编写Webservice 头一个受益例子现在当然搞定了,感谢当初无名贡献编写者。通过
调用
一个互联网天气预报的例子可以让大家搞定WebService 。
C#
winform
子窗体
调用
父窗体函数实现关闭该窗体打开另一个窗体
C#
winform
子窗体
调用
父窗体函数实现关闭该窗体打开另一个窗体;在父窗体分From1内嵌一个panel1,在panel1里载入From2,点击在子窗体From2中的按钮,清除panel1里的From2,新载入From3,点击在子窗体From3中的按钮,panel1清除,重新载入From2
C#
跨窗体(
Winform
)
调用
控件(委托回调)
委托回调
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章