protected virtual void OnDataReceived(MemoryMappedDataReceivedEventArgs e) { if (e != null && DataReceived != null) { DataReceived(this, e); } }
private void ReaderThread(object stateInfo) { while (started) { // Checks if there is something to read. var dataAvailable = view.ReadBoolean(ReadPosition + DATA_AVAILABLE_OFFSET); if (dataAvailable) { // Checks how many bytes to read. int availableBytes = view.ReadInt32(ReadPosition + DATA_LENGTH_OFFSET); var bytes = new byte[availableBytes]; // Reads the byte array. int read = view.ReadArray <byte>(ReadPosition + DATA_OFFSET, bytes, 0, availableBytes); // Sets the flag used to signal that there aren't available data anymore. view.Write(ReadPosition + DATA_AVAILABLE_OFFSET, false); // Sets the flag used to signal that data has been read. view.Write(ReadPosition + READ_CONFIRM_OFFSET, true); MemoryMappedDataReceivedEventArgs args = new MemoryMappedDataReceivedEventArgs(bytes, read); operation.Post(callback, args); } Thread.Sleep(500); } }
protected virtual void OnDataReceived(MemoryMappedDataReceivedEventArgs e) { if (e != null && DataReceived != null) DataReceived(this, e); }
private void ReaderThread(object stateInfo) { while (started) { // Checks if there is something to read. var dataAvailable = view.ReadBoolean(ReadPosition + DATA_AVAILABLE_OFFSET); if (dataAvailable) { // Checks how many bytes to read. int availableBytes = view.ReadInt32(ReadPosition + DATA_LENGTH_OFFSET); var bytes = new byte[availableBytes]; // Reads the byte array. int read = view.ReadArray<byte>(ReadPosition + DATA_OFFSET, bytes, 0, availableBytes); // Sets the flag used to signal that there aren't available data anymore. view.Write(ReadPosition + DATA_AVAILABLE_OFFSET, false); // Sets the flag used to signal that data has been read. view.Write(ReadPosition + READ_CONFIRM_OFFSET, true); MemoryMappedDataReceivedEventArgs args = new MemoryMappedDataReceivedEventArgs(bytes, read); operation.Post(callback, args); } Thread.Sleep(500); } }
private void DataReceived(object sender, MemoryMappedDataReceivedEventArgs e) { ReceivedAccelServDataArgs args = new ReceivedAccelServDataArgs(e.Data, e.Data.LongLength); ReceivedAccelServDataEvent(this, args); }