Witam mam program który ma skopiować plik z miejsca na miejsce, jeden wątek pobiera dane z pliku byte za pomocą BinaryReader, a drugi wątek zapisuje ten byte do nowej lokalizacji za pomocą BinaryWriter. wszystko przechowywane jest w kolekcji Queue jednak finalnie nowy plik jest większy od poprzedniego, a przy kilku powtórzeniach otrzymuje różne rozmiary plików oraz BinaryWriter wykonuje się częściej. Ktoś wie jaka jest przyczyna?
0
0
Masz np. ascii tekst od a do z, i np. któreś litery się powtarzają częściej przy zapisie, na początku, na końcu lub ogólnie się dublują?
Odpaliłeś w debuggerze ten program, jakaś powierzchowna analiza, potem np. w głąb.
0
przy małych plikach działa dobrze więc ciężko znaleźć coś w debugerze, a co do struktury pliku to nie wiem wziąłem jakiś losowy plik warzący kilkanaście MB
1
Standardowa kolejka nie jest thread-safe.
https://docs.microsoft.com/pl-pl/dotnet/api/system.collections.concurrent.concurrentqueue-1?view=netframework-4.7.2
0
Sunnyline2 wielkie dzięki rozwiązało problem