A class library for managing multi-threaded sequential write access to one or more files. It is capable of flushing writes from multiple threads in batches by either hitting a specified size threshold or a specified inactivity time limit. It is also possible to write this batching information within the output file(s). Note: This class should be injected as a single or static instance shared across all process threads. Files will be locked exclusively from the first Write() call until FlushAndClose() or Dispose() is called (presently one of these *must* be explicitly called to ensure all data is flushed). The ConcurrentFileWriter class can be found as an extension of System.IO *** Full debugging source/symbols are available from http://srv.symbolsource.org/pdb/Public Usage Example: var cfw = new ConcurrentFileWriter(new ConcurrentFileWriterSettings { flushTimeInMilliseconds = 5000, flushSizeInBytes = 10000, showWriteBatchingMarkers = true }); //Pre-lock file (not required) cfw.Write(@"c:\temp\test.log", null); //Append a string (byte arrays can also be directly written) cfw.WriteUtf8Line(@"c:\temp\test.log", "Test Line"); //Flush and unlock specified file (stop managing) cfw.CloseManagedFile(@"c:\temp\test.log"); //Flush and unlock all managed files cfw.Dispose();
License
—
Deps
0
Install Size
—
Vulns
✓ 0
Published
Nov 30, 2015
$ dotnet add package ConcurrentFileWriterNo README available.