public void Read() { FreeTrackData local; accessor.Read(0, out local); if (local.DataID == Data.DataID) { sameDataCount++; } else { sameDataCount = 0; OnUpdate(); } if (sameDataCount > 20) { local = new FreeTrackData { DataID = Data.DataID }; OnUpdate(); } Data = local; }
public void Context() { var reset = new AutoResetEvent(false); var count = 0; var rand = new Random(); ThreadPool.QueueUserWorkItem(o => { using (var memoryMappedFile = MemoryMappedFile.CreateOrOpen("FT_SharedMem", Marshal.SizeOf(typeof(FreeTrackData)))) { using (var accessor = memoryMappedFile.CreateViewAccessor()) { while (run) { count++; var model = new FreeTrackData { DataID = count, Yaw = rand.Next(0, 5), Pitch = rand.Next(5, 10), Roll = rand.Next(10, 15), X = rand.Next(15, 20), Y = rand.Next(20, 25), Z = rand.Next(25, 30) }; accessor.Write(0, ref model); reset.Set(); } } } }); reset.WaitOne(); }
public void Read() { FreeTrackData local; accessor.Read(0, out local); if (local.DataID == Data.DataID) sameDataCount++; else { sameDataCount = 0; OnUpdate(); } if (sameDataCount > 20) { local = new FreeTrackData(); local.DataID = Data.DataID; OnUpdate(); } Data = local; }