2010-08-09 4 views
0

Avoir un tuyau de 1MB:Comment: surveiller la progression des données dans un tube?

if (0 == CreatePipe(&hRead,&hWrite,0,1024*1024)) 
{ 
printf("CreatePipe failed\n"); 
return success; 
} 

Envoi de 4000 octets à la fois (bytesReq = 4000)

while ((bytesReq = (FileSize - offset)) != 0) 
{ 


//Send data to Decoder.cpp thread, converting to human readable CSV 
     if ((0 == WriteFile(hWrite, 
           readBuff, 
           bytesReq, 
           &bytesWritten, 
           0)) || 
           (bytesWritten != bytesReq)) 
     { 
      printf("WriteFile failed error = %d\n",GetLastError()); 
      break; 
     } 

// Would like to update a status box with the amount of data in the pipe. 
I would like to know if and how often it is getting full.... 



} 

4 octets à la fois en cours de lecture dans un autre thread, à l'autre extrémité de tuyau.

Répondre

1

Avant de lire les 4 octets, vous pouvez lire les octets disponibles en utilisant PeekNamedPipe

+0

Je ne sais pas ce qui me dit la capacité actuelle du tuyau: « si la taille de la mémoire tampon est égale à zéro, la mémoire tampon est allouée au besoin » –

+0

Désolé, j'ai eu la mauvaise fonction. Je vais corriger cela. – schoetbi

Questions connexes