在窗口A中 有一线程函数
这个线程函数
while(1)
{
//向窗口B发送消息
}当窗口B关闭时,怎么关闭这个线程?
这个线程函数
while(1)
{
//向窗口B发送消息
}当窗口B关闭时,怎么关闭这个线程?
解决方案 »
- 各位1存储过程返回记录集recordcount-1,怎么解决啊?
- 发招聘帖子被扣了10个性欲,散200分,庆祝
- 用什么来显示选择的颜色!
- 使用异步选择模型编程的错误,连接后就自动跳出
- 请问能否在两个不同应用程序中传递消息和参数
- 用WIN32 Dynamic-Link Library建了一个工程,为什么在里面不能用CTime类,请高手指教!!!!
- C++中的指针问题
- 怎样读写ini文件
- ***我遇到了最奇怪的事情***
- 高分求解:如何给出鼠标与平面直角坐标系上的曲线(曲线的方程不可求,因曲线上的点是随机产生的)交点的坐标?
- 修改打印机的数据
- 求解一个MSchart的问题?????????????
while(!B.m_bExit)
{
....
}
把你上面的代码改成// 当工作线程应该关闭的时候的标志
volatile BOOL g_fQuit = FALSE; // volatile 关键字不使用寄存器里的值
///////////////////////////////////////////////////////////////////////////////
DWORD WINAPI WorkerThread(PVOID pvParam)
{
// 工作线程是否应该关闭?
while (!g_fQuit)
{
// ...
}
}然后在B窗口的关闭事件中写一句InterlockedExchangePointer((PVOID*) &g_fQuit, (PVOID) TRUE);上面这个函数就是把这个全局变量变为TRUE的意思,只不过它是原子方式运行的,比较安全
while(1)
{
判断条件
PostMessage 创建窗口B
向B发送消息
}
所以不好用2楼的方法啊