问题如下:
class a{
void start();
void play();
volatile long l;
onpaint();//callback function every 10s
};
void a::start()
{
l=0
HANDLE hThread;
DWORD ThreadId;
hThread=CreateThread(NULL,0,
(unsigned long(_stdcall*)(void*))ThreadFunc,this,0,&ThreadId);
CloseHandle(hThread);
}DWORD WINAPI ThreadFunc(a* ptr)
{
ptr->Play(ptr);
return 0;
}
void a::play(a* ptr)
{
for(;;)
{
Sleep(10);
if(l==10)//l永远为0,永远不会为10?????????为什么????????
MessageBox("l is 100!");
}
}
void a::onpaint()
{
l=10;
}
class a{
void start();
void play();
volatile long l;
onpaint();//callback function every 10s
};
void a::start()
{
l=0
HANDLE hThread;
DWORD ThreadId;
hThread=CreateThread(NULL,0,
(unsigned long(_stdcall*)(void*))ThreadFunc,this,0,&ThreadId);
CloseHandle(hThread);
}DWORD WINAPI ThreadFunc(a* ptr)
{
ptr->Play(ptr);
return 0;
}
void a::play(a* ptr)
{
for(;;)
{
Sleep(10);
if(l==10)//l永远为0,永远不会为10?????????为什么????????
MessageBox("l is 100!");
}
}
void a::onpaint()
{
l=10;
}
解决方案 »
- 关于C++默认构造函数的问题
- 【都来指点↓】Navigate是独占方式打开的吗?
- 如何提取YUY2的分量,然后转为rgb24?
- 求支持插件技术的开源软件
- 怎样把文件名导入列表框
- 【求教基础问题】调用动态链接库有哪些种方法?什么样的动态链接库可以调用?
- 怎样用VC来编程实现 重命名一个目录?
- vs2005 MFC button等风格问题!!!
- 文字排版,计算输出区域的问题
- 谁知道Win2000下RegisterProcessService的替代函数?
- 菜鸟问题:如何使用自己编写的filter
- atl生成的dll编译后如何重新编译,除了重启就没有别的方法了?另外如何调试atl生成的.exe?多谢!
void a::onpaint()
{
l+=10;
}
而onpaint是每10S由系统调用的,那么创建的线程中读取的l会变化么?