一个对象在不同线程间工作的问题
工具栏上有一个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 !!!!!!!!!
[解决办法]
那就把分给大家吧。
[解决办法]
来的及时
[解决办法]
[解决办法]
一定要细心啊,同学。