首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2013-06-25 
新手求指导线程的问题我想创建一个线程,线程里面建一个循环,通过按钮暂停的时候,线程立即停止执行,再启动

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


我的大致流程

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

我想实现复位的时候线程重新开始,即重新从文件读一遍数据 线程 重启
[解决办法]
复位就让之前的线程退出,然后重新启动一个新线程
[解决办法]
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);
这样结束等待都行

热点排行