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?
Queue więcej pobrań niż dodanych elementów
- Rejestracja: dni
- Ostatnio: dni
- Postów: 13
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6
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
- Rejestracja: dni
- Ostatnio: dni
- Postów: 58
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