void Work() { while (true) { string task = null; lock (_lock) { if (_tasks.Count > 0) { task = _tasks.Dequeue(); if (task == null) { return; } } } if (task != null) { if (OnDoWork != null) { OnDoWork.Invoke(task); } } else { _wh.WaitOne(); } } }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { ReadDataHtml(); SendMessageHtml(); OnDoWork?.Invoke(); }