读书人

新手求指导线程的有关问题

发布时间: 2013-06-25 23:45:41 作者: rapoo

新手求指导线程的问题
我想创建一个线程,线程里面建一个循环,通过按钮暂停的时候,线程立即停止执行,再启动的时候从暂停时的那一步开始执行,复位再启动的时候从线程最开始的时候开始执行。
我现在可以实现暂停,但是复位实现不了,不知用哪一个函数
谁有好的思路指点下


我的大致流程

线程开始
{
从文件读数据保存
{
根据读取的数据执行相应操作并不断循环执行 //此循环过程可以暂停并继续
}
}
线程结束

我想实现复位的时候线程重新开始,即重新从文件读一遍数据 线程 重启
[解决办法]
复位就让之前的线程退出,然后重新启动一个新线程
[解决办法]
while (true)
{
if (!bContinue)
{
Sleep(300);
continue;
}
从文件读数据保存
{
根据读取的数据执行相应操作并不断循环执行 //此循环过程可以暂停并继续
}

}
通过按钮更改bContinue的值

这个是最简单的,当然用信号量去做更好
[解决办法]
SuspendThread
ResumeThread

试试这2个api呢, 我是重来没用过,没这需求过。

我一般在需要暂停的地方放个事件什么的
HANDLE hWaits[2];
hWaits[0] = m_hSuspend;
hWaits[1] = m_hExit;

WaitForMultipleObject(...)


SetEvent(m_hSuspend); SetEvent(m_hExit);
这样结束等待都行

读书人网 >VC/MFC

热点推荐