一个对象在不同线程间工作的有关问题
一个对象在不同线程间工作的问题工具栏上有一个check button。当button按下处于checked状态时,启动一个线程
一个对象在不同线程间工作的问题
工具栏上有一个check button。当button按下处于checked状态时,启动一个线程,该线程内循环执行objA.workstart()。
C/C++ codeUINT 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 !!!!!!!!!
[解决办法]那就把分给大家吧。
[解决办法]来的及时
[解决办法][解决办法]一定要细心啊,同学。