public void Dispose() { topicHandles.Dispose(); if (!this.manualPoll) { // Note: It's necessary to wait on callbackTask before disposing kafkaHandle. // TODO: If called in a finalizer, can callbackTask be potentially null? callbackCts.Cancel(); callbackTask.Wait(); } kafkaHandle.Dispose(); }