/// <summary>Shutdown the tracker so that no further capture can be added to the input queue.</summary> /// <remarks><para> /// Once the tracker is shutdown, <see cref="TryEnqueueCapture(Capture, Timeout)"/> method will always immediately return failure. /// </para><para> /// If there are remaining captures in the tracker queue after the tracker is shutdown, <see cref="TryPopResult(out BodyFrame, Timeout)"/> can /// still return successfully. Once the tracker queue is empty, the <see cref="TryPopResult(out BodyFrame, Timeout)"/> call will always immediately /// return failure. /// </para><para> /// This function may be called while another thread is blocking in <see cref="TryEnqueueCapture(Capture, Timeout)"/> or <see cref="TryPopResult(out BodyFrame, Timeout)"/>. /// Calling this function while another thread is in that function will result in that function raising an exception. /// </para></remarks> public void Shutdown() { NativeApi.TrackerShutdown(handle.Value); queueSize = 0; }