Example #1
0
        public virtual void Dispose()
        {
            NetworkInterface.OnGetTotalHashrate         -= NetworkInterface_OnGetTotalHashrate;
            NetworkInterface.OnGetMiningParameterStatus -= NetworkInterface_OnGetMiningParameterStatus;
            NetworkInterface.OnNewChallenge             -= NetworkInterface_OnNewChallenge;
            NetworkInterface.OnNewTarget -= NetworkInterface_OnNewTarget;
            NetworkInterface.OnStopSolvingCurrentChallenge -= NetworkInterface_OnStopSolvingCurrentChallenge;

            if (m_hashPrintTimer != null)
            {
                try
                {
                    m_hashPrintTimer.Elapsed -= HashPrintTimer_Elapsed;
                    m_hashPrintTimer.Dispose();
                }
                catch { }
                m_hashPrintTimer = null;
            }

            try
            {
                if (Devices != null)
                {
                    Devices.AsParallel().
                    ForAll(d => d.Dispose());
                }
            }
            catch { }

            try { NetworkInterface.Dispose(); }
            catch { }
        }