Почему этот поток не читает все данные из канала последовательно? - PullRequest
0 голосов
/ 30 июня 2010

Что-то не так с этим вообще?

CallingFunction()
{
   CreatePipe()
   CreateMutex()
   CreateThread( ThreadFunction )

   while(there is data left to send)
   {
      WriteFile(send data in 256 byte chunks)
   }

   WaitForSingleobject() //don't return until ReadThread is done

   return 0;
 }

ThreadFunction()
{
   WaitForSinglObject()

   while(bytesRead != totalBytestoReadFileSize)
   {
      ReadfromPipe(in chunks)
      update bytesRead++
   }

   ReleaseMutex()

   return 0;
 }

До завершения вызывающей функции -

Размер файла: 232016
BytesWrittenToPipe: 232016
BytesReadFromPipe: 231946 или 232012 или 231840 -> Почему не соответствует?

1 Ответ

1 голос
/ 30 июня 2010

Ожидать от нас отладки такой проблемы из псевдокода нереально.Используйте FlushFileBuffers для обеспечения записи всех данных в канале.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...