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

  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");
  }

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

当存在用于写入的类似线程时,问题变得更加严重。

  ask by user14416 translate from so

本文未有回复,本站智能推荐: