Beispiel #1
0
        private void WriteSequencesPeriodically(MemoryMappedViewAccessor accessor, List <T> sequences)
        {
            foreach (var sequence in sequences)
            {
                _entityListToWrite.Enqueue(sequence);
            }

            if (_stateTimer != null)
            {
                _stateTimer.CancelToken = new CancellationToken(true);
            }
            _stateTimer = new PeriodicTaskFactory((task) =>
            {
                lock (sync)
                {
                    // var isOwnedMutex =  LockKeyData.WaitOne();
                    LockKeyData.WaitOne();
                    WriteSequences(accessor);
                    //  if (isOwnedMutex)
                    LockKeyData.ReleaseMutex();
                }
            },
                                                  new TimeSpan(0, 0, 2),
                                                  new TimeSpan(0, 0, 2));
            _stateTimer.Start();
        }
Beispiel #2
0
        public virtual void Close()
        {
            Accessor.Dispose();

            MemoryMappedFile.Dispose();

            LockKeyData.Dispose();
        }