C#锁事件的问题? 有两个事件A,B他们是同时触发的,并且是在不同的线程中执行的,怎么将事件B锁起来,等事件A执行完以后再执行事件B? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 基本上不太不可能完全同时。线程要同步的话,共同使用一个AutoResetEvents对象或ManualResetEvents对象,需要对待的线程执行WaitOne,那边做得差不多了这边可以启动的时候就执行Set,等待的线程就可以继续了。 class Form1:Form{ private AutoResetEvents are=null; ... private void Form1_Load(object sender,EventArgs e) { are=new AutoResetEvents(false); ... } private void ThreadProc1() { ... are.WaitOne();//这个时候这个线程就会被暂停 ... } private void ThreadProc2() { ... are.Set();//那边可以开始了 ... }}//没有给出创建线程启动线程的代码 谢谢芥子 不过好像是AutoResetEvent不是AutoResetEvents 出现错误: unable to save config to file TreeNode无法动态添加多个子Node的问题 WebForm中2个按钮的问题! 生成的rtf文件不能被 richtextbox load 如何在类库中使用MSCOM控件 B/S如何调用chm文件 招测试开发工程师 安装完 msSQL 2000 后,在安装msSQL 的sp3 补丁,总是安装不上,怎么回事情? 在C#中如何存取ORACLE的BLOB? 异步调用webservice,等待返回结果,用sleep后醒不过来怎么办? C#操作并口 用过ASP.NET+SQL2005虚拟空间的介绍下
线程要同步的话,共同使用一个AutoResetEvents对象或ManualResetEvents对象,需要对待的线程执行WaitOne,那边做得差不多了这边可以启动的时候就执行Set,等待的线程就可以继续了。
{
private AutoResetEvents are=null;
...
private void Form1_Load(object sender,EventArgs e)
{
are=new AutoResetEvents(false);
...
} private void ThreadProc1()
{
...
are.WaitOne();//这个时候这个线程就会被暂停
...
}
private void ThreadProc2()
{
...
are.Set();//那边可以开始了
...
}
}
//没有给出创建线程启动线程的代码