private void Run() { while (_running) { try { Action item = _works.Dequeue(); if (item == null) break; item(); } catch (JobCanceledException) { break; } catch (Exception e) { Logger.Err(LogMask.Aegis, e.ToString()); } } }