diff --git a/MultiMiner.UX/ViewModels/ApplicationViewModel.cs b/MultiMiner.UX/ViewModels/ApplicationViewModel.cs index 9169cc72f..82d83ba56 100644 --- a/MultiMiner.UX/ViewModels/ApplicationViewModel.cs +++ b/MultiMiner.UX/ViewModels/ApplicationViewModel.cs @@ -39,6 +39,7 @@ using System.Security.Cryptography; using System.ServiceModel; using System.Text; +using System.Timers; using System.Web.Script.Serialization; using System.Windows.Forms; using Application = MultiMiner.UX.Data.Configuration.Application; @@ -89,10 +90,10 @@ public class ApplicationViewModel #region Fields //coalesced timers private readonly Timers timers = new Timers(); - private readonly Timer coinStatsTimer = new Timer(); - private readonly Timer restartTimer = new Timer(); - private readonly Timer networkRestartTimer = new Timer(); - private readonly Timer networkScanTimer = new Timer(); + private readonly System.Timers.Timer coinStatsTimer = new System.Timers.Timer(); + private readonly System.Timers.Timer restartTimer = new System.Timers.Timer(); + private readonly System.Timers.Timer networkRestartTimer = new System.Timers.Timer(); + private readonly System.Timers.Timer networkScanTimer = new System.Timers.Timer(); //configuration public readonly Engine.Data.Configuration.Engine EngineConfiguration = new Engine.Data.Configuration.Engine(); @@ -189,10 +190,10 @@ public ApplicationViewModel() LogLaunchArgsBindingSource.DataSource = logLaunchEntries; LogProcessCloseArgsBindingSource.DataSource = LogCloseEntries; - coinStatsTimer.Tick += coinStatsTimer_Tick; - restartTimer.Tick += restartTimer_Tick; - networkRestartTimer.Tick += networkRestartTimer_Tick; - networkScanTimer.Tick += networkScanTimer_Tick; + coinStatsTimer.Elapsed += coinStatsTimer_Tick; + restartTimer.Elapsed += restartTimer_Tick; + networkRestartTimer.Elapsed += networkRestartTimer_Tick; + networkScanTimer.Elapsed += networkScanTimer_Tick; SetupNetworkRestartTimer(); SetupNetworkScanTimer(); @@ -1784,7 +1785,7 @@ public void RenameDevice(DeviceViewModel deviceViewModel, string name) deviceViewModel.FriendlyName = name; } - private void CheckIdleTimeForDynamicIntensity(long timerInterval) + private void CheckIdleTimeForDynamicIntensity(double timerInterval) { if (OSVersionPlatform.GetGenericPlatform() == PlatformID.Unix) return; //idle detection code uses User32.dll @@ -5269,7 +5270,7 @@ private void SetupNetworkScanTimer() networkScanTimer.Enabled = false; } - private void networkRestartTimer_Tick(object sender, EventArgs e) + private void networkRestartTimer_Tick(object sender, ElapsedEventArgs e) { if (ApplicationConfiguration.ScheduledRebootNetworkDevices) RebootAllNetworkDevicesAsync(); @@ -5277,7 +5278,7 @@ private void networkRestartTimer_Tick(object sender, EventArgs e) RestartAllNetworkDevicesAsync(); } - private void networkScanTimer_Tick(object sender, EventArgs e) + private void networkScanTimer_Tick(object sender, ElapsedEventArgs e) { ClearCachedNetworkDifficulties(); @@ -5344,11 +5345,11 @@ public void SetupCoinStatsTimer() coinStatsTimer.Enabled = true; } - private void coinStatsTimer_Tick(object sender, EventArgs e) + private void coinStatsTimer_Tick(object sender, ElapsedEventArgs e) { RefreshCoinStatsAsync(); - CoinStatsCountdownMinutes = coinStatsTimer.Interval / 1000 / 60; + CoinStatsCountdownMinutes = (int)coinStatsTimer.Interval / 1000 / 60; } public void SetupCoalescedTimers() @@ -5369,19 +5370,19 @@ public void SetupCoalescedTimers() #endregion #if DEBUG - private void debugOneSecondTimer_Tick(object sender, EventArgs e) + private void debugOneSecondTimer_Tick(object sender, ElapsedEventArgs e) { //updates in order to try to reproduce threading issues if (DataModified != null) DataModified(this, new EventArgs()); } #endif - private void oneHourTimer_Tick(object sender, EventArgs e) + private void oneHourTimer_Tick(object sender, ElapsedEventArgs e) { ClearPoolsFlaggedDown(); } - private void oneMinuteTimer_Tick(object sender, EventArgs e) + private void oneMinuteTimer_Tick(object sender, ElapsedEventArgs e) { //if we do this with the Settings dialog open the user may have partially entered credentials SubmitMobileMinerStatistics(); @@ -5408,13 +5409,13 @@ private void oneMinuteTimer_Tick(object sender, EventArgs e) RestartSuspectNetworkDevices(); } - private void twelveHourTimer_Tick(object sender, EventArgs e) + private void twelveHourTimer_Tick(object sender, ElapsedEventArgs e) { UpdateBackendMinerAvailability(); CheckForUpdates(); } - private void fiveMinuteTimer_Tick(object sender, EventArgs e) + private void fiveMinuteTimer_Tick(object sender, ElapsedEventArgs e) { //submit queued notifications to MobileMiner SubmitMobileMinerNotifications(); @@ -5429,7 +5430,7 @@ private void fiveMinuteTimer_Tick(object sender, EventArgs e) networkDeviceVersions.Clear(); } - private void thirtySecondTimer_Tick(object sender, EventArgs e) + private void thirtySecondTimer_Tick(object sender, ElapsedEventArgs e) { UpdateLocalViewFromRemoteInstance(); @@ -5446,28 +5447,28 @@ private void thirtySecondTimer_Tick(object sender, EventArgs e) RefreshPoolInfo(); } - private void fifteenSecondTimer_Tick(object sender, EventArgs e) + private void fifteenSecondTimer_Tick(object sender, ElapsedEventArgs e) { if (ApplicationConfiguration.NetworkDeviceDetection) RefreshNetworkDeviceStatsAsync(); } - private void tenSecondTimer_Tick(object sender, EventArgs e) + private void tenSecondTimer_Tick(object sender, ElapsedEventArgs e) { if (MiningEngine.Mining) { - long timerInterval = ((Timer)sender).Interval; + double timerInterval = ((System.Timers.Timer)sender).Interval; CheckIdleTimeForDynamicIntensity(timerInterval); RefreshAllDeviceStats(); } } - private void thirtyMinuteTimer_Tick(object sender, EventArgs e) + private void thirtyMinuteTimer_Tick(object sender, ElapsedEventArgs e) { RefreshExchangeRates(); } - private void oneSecondTimer_Tick(object sender, EventArgs e) + private void oneSecondTimer_Tick(object sender, ElapsedEventArgs e) { CheckMiningOnStartupStatus(); } diff --git a/MultiMiner.Utility/Forms/Timers.cs b/MultiMiner.Utility/Forms/Timers.cs index 3caf7de35..047bad0ea 100644 --- a/MultiMiner.Utility/Forms/Timers.cs +++ b/MultiMiner.Utility/Forms/Timers.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; namespace MultiMiner.Utility.Forms { @@ -21,16 +20,16 @@ public class Timers public const int OneHourInterval = OneMinuteInterval * minutesPerHour; public const int TwelveHourInterval = OneHourInterval * 12; - private List timers = new List(); + private List timers = new List(); - public System.Windows.Forms.Timer CreateTimer(int interval, EventHandler eventHandler) + public System.Timers.Timer CreateTimer(int interval, System.Timers.ElapsedEventHandler eventHandler) { - System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer() + System.Timers.Timer timer = new System.Timers.Timer() { Interval = interval, Enabled = true }; - timer.Tick += eventHandler; + timer.Elapsed += eventHandler; timers.Add(timer);