public void Close()
        {
            lock (_lock)
            {
                if (!IsConnected())
                {
                    return;
                }

                _surface.Paint       -= SurfacePaint;
                _surface.SizeChanged -= SurfaceSizeChanged;
                CppAssembly.PlayerShutDown(_playerPointer);
                DisposePointerToPlayer();
            }
        }