private void CreateDanmuMonitorImpl() { _value = new DanmuMonitorImpl(_roomId, _id, _showHeartBeat, _manualCts.Token); _value.DanmuHandler += (object sender, DanmuHandlerEventArgs e) => DanmuHandler?.Invoke(sender, e); _value.Disposing += (object sender, EventArgs e) => { GlobalSettings.Logger.LogError($"{_id} 号弹幕监控与服务器的连接意外断开,3s后尝试重连"); Restart(new TimeSpan(0, 0, 3)); }; }
/// <summary /> public void Dispose() { lock (_syncRoot) { if (_isDisposed) { return; } _manualCts.Cancel(); _manualCts.Dispose(); _value.Dispose(); _value = null; _isDisposed = true; } }