The SharedMemory class library provides a set of C# classes that utilise a memory-mapped file for fast low-level inter-process communication (IPC) - specifically for sharing data between processes.
* a lock-free FIFO circular buffer
* a simple fixed-size generic shared memory array class
* an implementation of a shared memory buffer for read/write.
* support for memory-mapped files in .NET 3.5 and .NET 4
* fast generic structure reading/writing
1. Prevent possible deadlock situation with incorrect Acquire and Release of read/write locks in BufferWithLocks (affects BufferReadWrite and SharedArray).
1. Breaking change: Array, Buffer, and Header classes renamed to SharedArray, SharedBuffer, and SharedHeader
2. Important breaking change! CircularBuffer Read/Write operations now allow an index to be specified. Check existing code as it may be passing a timeout value into index!
3. Circular buffer keeps track of amount written to a node and uses this during read operations
4. SharedArray implements IList
5. ArraySlice implementation added
6. FastStructure now performs type compatibility check within static constructor
7. A couple of bug fixes
8. A number of unit test fixes, minor corrections to comments and changes to make parameter names consistent
1. Implemented basic memory-mapped file support for .NET 3.5
2. Added generic FastStructure class for fast reading/writing of structures (using emitted IL with DynamicMethod)
3. Fixed offset bug in CircularBuffer.Read/Write(IntPtr, int, int)
1. Improved usage consistency by changing Buffer.Open to protected (breaking change)
2. BufferReadWrite now opens buffer in constructor
3. CircularBuffer now opens in constructor
4. Added read/write single structure overloads to CircularBuffer
5. Added XML documentation to NuGet package
This package has no dependencies.