⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_55475.htm

📁 vc
💻 HTM
字号:
<p>
序号:55475 发表者:man_chang 发表日期:2003-10-10 10:20:11
<br>主题:线程同步问题---急急急!!
<br>内容:主线程a中从缓冲区中取数据,线程b计算线程a取出的数据,主界面一直运行,用一个按钮调用线程a取数据。<BR>我定义了一个CEvent event;来同步这两个线程,在线程a中使用event.SetEvent();来触发线程b的执行函数,但是,只有第一次点按钮时能触发线程b的执行函数,以后点按钮时event.SetEvent()就不能触发线程b的执行函数了<BR>请指点
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:xiongli 回复日期:2003-10-10 10:28:33
<br>内容:你触发了b线程,b就在执行了,这个线程后来怎么样了??他执行完了又block了吗?在block以前把event设定成未激发状态了吗?<BR>并不是event激发了,b就执行.event激发两次,b就执行两次<BR>而是当b在等待一个未激发的event时,evnet激发了,b就可以执行.<BR>如果b没有等待,你无论怎么激发event,b不会收到影响
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:man_chang 回复日期:2003-10-10 13:59:42
<br>内容:有道理,能不能详细一点,具体一点<BR>谢谢!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:xiongli 回复日期:2003-10-10 16:58:29
<br>内容:还要详细阿<BR>线程同步可以写一本书<BR>你详细参考一下msdn<BR>或者在google上找一下线程同步.<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:淡淡 回复日期:2003-10-10 17:10:13
<br>内容:你F5跟踪一下,看预期函数不执行的原因在于根本未进入此线程(即第一次执行后就退出了,以后不再进入),还是因为同步对象的有否信号状态所致
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无情阁东雪 回复日期:2003-10-10 18:47:38
<br>内容:使用事件对象实现同步,假设主线程要读取共享缓冲区中的内容,而辅助线程负责向缓冲区中写入数据。两个线程使用了一个hEvent事件对象来同步。在用CreateEvent函数创建事件对象句柄时,指定该对象是一个自动重置事件,其初始状态为有信号的。当线程要读写缓冲区时,调用WaitForSingleObject函数无限等待hEvent信号。如果hEvent无信号,则说明另一线程正在访问缓冲区;如果有信号,则本线程可以访问缓冲区,WaitForSingleObject函数在返回后会自动把hEvent置成无信号的,这样在本线程读写缓冲区时别的线程不会同时访问。在完成读写操作后,调用SetEvent函数把hEvent置成有信号的,以使别的线程有机会访问共享缓冲区。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:man_chang 回复日期:2003-10-11 11:37:15
<br>内容:谢谢各位!问题解决了<BR><BR>原因是第一次执行后就退出了线程执行函数。<BR><BR>也想给 cuily(淡淡)&nbsp;&nbsp;分值的,但好像不能同时把分给两个人,抱歉?<BR><BR>谢谢!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -