If ten threads open files, as your code shows, then you have at most ten undisclosed FileStream objects at any given time. Yes, FileStream has an internal buffer, the size of which you specify using "BigBufferSizeInBytes" in your code. Could you tell us the exact meaning? If it is large enough (for example, 100 MB), then this may be the source of the problem.
By default (i.e. when you do not specify a number when building), this buffer is 4kB, and this is usually great for most applications. In general, if you really care about the performance of writing to disk, then you can increase this figure to a few 100 kB, but no more.
, 16-30 , , Dispose() FileStream.
, OutOfMemoryException , , GC . , , , . , .