c++ - 如何在无限循环中运行线程

标签 c++ mfc

在我的一个项目中,我需要同时运行两个操作(打开和关闭操作)(即并行/同时)。我已经为各自的操作创建了两个线程,如下所示:

UINT MyThread1(LPVOID lParam)
{
 // code for Open Operation..
 // other stuffs...

 return(1);
}

UINT MyThread2(LPVOID lParam)
{
 //Code for Close Operation..
 //Other Stuffs..

return(1);
}

void CMyProject : OnbnClickedOpen()
{
   // Here am running OPen Operation Continously..
 while(1) {
 AfxBeginThread(MyThread1,0);
 }
 }

void CMyProject : onbnClickedClose()
{
  //Here am running Close Operation continously...
  while(1) {
  AfxBeginThread(MyThread2,0);
 }
}

这里无法连续运行线程。我试过这样的替代方法:

void CMyProject : OnbnClickedOpen()
{
   while( 1 )
   {
     //Code for Open Operation..
   }
 }

void CMyProject : onbnClickedClose()
{
  while(1)
  {
    //Code for Close Operation..
  }
}

有了这个,我可以连续运行打开操作或连续关闭操作,但不能同时运行。

请建议/指导我如何做到这一点..

谢谢。

最佳答案

while 循环移动到线程函数中:

UINT MyThread1(LPVOID lParam)
{
 // Here am running OPen Operation Continously..
 while(1) {
   // code for Open Operation..
   // other stuffs...
 }

 return(1);
}

UINT MyThread2(LPVOID lParam)
{
  //Here am running Close Operation continously...
  while(1) {
   //Code for Close Operation..
   //Other Stuffs..
  }

return(1);
}

void CMyProject : OnbnClickedOpen()
{
 AfxBeginThread(MyThread1,0);
}

void CMyProject : onbnClickedClose()
{
  AfxBeginThread(MyThread2,0);
}

关于c++ - 如何在无限循环中运行线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14335504/

相关文章:

c++ - 从 C++ 控制 Firefox

c++ - Dlib MLP 中的偏置节点?

c++ - 是否可以将 std::vector 传递给需要 CArray 的 MFC 函数?

const void 指针的 C++ 语法

c++ - 使用应用程序类有什么好处?

MFC 中的 C++ UTF-8/ASCII 到 UTF-16

c++ - 单击 MFC 编辑框

mfc - 在 MFC CMenu 中绘制图标而不是位图?

c++ - 计算工具栏图标宽度

c++ - MFC画线