示例#1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Closes the connection to Libronix
        /// </summary>
        /// ------------------------------------------------------------------------------------
        private void Close()
        {
            lock (this)
            {
                if (m_PositionChangedBridge != null)
                {
                    if (m_cookies != null)
                    {
                        RemovePositionEvents();
                    }
                    m_PositionChangedBridge.PositionChanged -= OnPositionChangedInLibronix;
                }
                m_PositionChangedBridge = null;
                m_cookies.Clear();
                if (m_pollTimer != null)
                {
                    m_pollTimer.Stop();
                    m_pollTimer.Dispose();
                    m_pollTimer = null;
                }

                if (m_ApplicationEventsBridge != null)
                {
                    try
                    {
                        m_ApplicationEventsBridge.Disconnect(m_libronixApp, m_ApplicationEventsCookie);
                    }
                    catch
                    { }
                    m_ApplicationEventsBridge.EventFired -= OnApplicationEventsBridgeEventFired;
                }
                m_ApplicationEventsBridge = null;

                m_libronixApp = null;
            }
        }