/// <summary> /// Data queue event handler /// </summary> /// <param name="sender"></param> /// <param name="d"></param> public void QueueData(object sender, DataQueueObject d) { lock (_lock) { _dataQueue.Enqueue(d); } _reset.Set(); }
/// <summary> /// Function for creating new documents /// </summary> /// <param name="d"></param> private void HandleDataEvent(DataQueueObject d) { switch (d.Type) { case DataQueueObject.DataType.CycleData: if (!(d.Data is CCDataPoint p)) { return; } SaveCCData(p); break; } }
private void DataWorker_DoWork(object sender, DoWorkEventArgs e) { while (true) { DataQueueObject d = null; lock (_lock) { if (_dataQueue.Count > 0) { d = _dataQueue.Dequeue(); } } if (d == null) { _reset.WaitOne(5000); continue; } HandleDataEvent(d); } }