首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

一个对象在不同线程间工作的有关问题

2012-02-24 
一个对象在不同线程间工作的问题工具栏上有一个check button。当button按下处于checked状态时,启动一个线程

一个对象在不同线程间工作的问题
工具栏上有一个check button。当button按下处于checked状态时,启动一个线程,该线程内循环执行objA.workstart()。

C/C++ code
UINT WorkThread(...){    int state;    do    {        state = objA.workstart();    }while( state==GoOn  );}

workstart()执行时间较长,所以其中添加了多处用于函数退出的判断句: if ( ifEndWork ) return DoNotGoOn;
说明:当ifEndWork = true时候退出workstart并停止循环。

当button再次按下处于弹起状态时,执行objA.workstop()。
workstop()主要内容是 ifEndWork=TRUE;

我的思路就是在子线程执行objA.workstart的时候,由主线程执行objA.workstop来停止工作。

但是结果发现workstop对workstart根本没有影响。我将ifEndWork设置成volatile了也不行。
谢谢。


[解决办法]
进去跟踪一下阿 
或者在线程中加TRACE 跟踪 
在 if ( ifEndWork ) return DoNotGoOn; 跟踪 EndWork的值 
看看你checkButton弹起时ifEndWork 的值是否是true 

[解决办法]
呵呵,接分!!
[解决办法]
来了来了。。总是这么及时。。
[解决办法]
ifEndWork是全局变量就可以。
[解决办法]
jf!

[解决办法]
jf !!!!!!!!!
[解决办法]
那就把分给大家吧。
[解决办法]
来的及时
[解决办法]
探讨
居然是漏判断了一个地方而已。散分

[解决办法]
一定要细心啊,同学。

热点排行