0

在我的程序中,我启动线程以将输出重定向到控制台:

  while(TRUE)
  {
     if (!ReadFile(hPipeRead,lpBuffer,sizeof(lpBuffer),
                                      &nBytesRead,NULL) || !nBytesRead)
     {
        if (GetLastError() == ERROR_BROKEN_PIPE)
           break; // pipe done - normal exit path.
        else
           DisplayError("ReadFile"); // Something bad happened.
     }

     // Display the character read on the screen.
     if (!WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE),lpBuffer,
                       nBytesRead,&nCharsWritten,NULL))
        DisplayError("WriteConsole");
  }

问题是它是一个循环。是否可以通过使线程等待管道中出现某些内容来避免循环运行?

当有类似的写作线索时,问题变得更加严重。

4

0 回答 0