public void Unregister(RunnableUnitDelegate runnableUnit) { lock (sync) { this.runnableUnits -= runnableUnit; } }
public override async Task StopAsync() { if (this.isStop) { return; } this.isStop = true; this.runnableUnits = null; this.scheduler.Unregister(this); await base.StopAsync(); if (this.channel != null) { await this.channel.StopAsync(); this.channel = null; } this.session = null; this.controller.Dispose(); }