コード例 #1
0
        private void Cleanup()
        {
            // Detach windows key event handler
            Window.Current.CoreWindow.KeyUp -= CoreWindowOnKeyUp;

            // Cancel the processing loop
            if (_processingTaskCancellationTokenSource != null)
            {
                _processingTaskCancellationTokenSource.Cancel();
            }

            // Stop ARToolKit and shutdown
            if (_arWrapper != null)
            {
                _isRunning = false;
                if (!_arWrapper.arwStopRunning())
                {
                    throw new InvalidOperationException("Failed to stop ARToolkit from running.");
                }
                if (!_arWrapper.arwShutdownAR())
                {
                    throw new InvalidOperationException("Failed to shutdown ARToolkit.");
                }
                _arWrapper = null;
            }
            _wasStarted = false;
        }