public void Restart() { Aborting = true; ThreadPool.QueueUserWorkItem(delegate { while ( !FileScanner.Stopped || !FileUploader.Stopped || !PlaylistProcessor.Stopped || !IdleProcessor.Stopped || !QueueChecker.Stopped) { ThreadHelper.SafeSleep(250); } FileScanner = new FileScanner(this); FileUploader = new FileUploader(this); IdleProcessor = new IdleProcessor(this); QueueChecker = new QueueChecker(this); PlaylistProcessor = new PlaylistProcessor(this); FileScanner.Reset(); Aborting = false; ManagingYTMusicStatus = ManagingYTMusicStatusEnum.CloseChangesComplete; StartMainProcess(true); }); }
public MainForm(bool hidden) : base(formResizable: false) { #if RELEASE CheckForIllegalCrossThreadCalls = false; #endif CultureHelper.GloballySetCultureToGB(); MainFormInstance = this; InitializeComponent(); if (hidden) { ShowInTaskbar = false; CenterForm(); WindowState = FormWindowState.Minimized; Opacity = 0; StartHidden = true; } MusicDataFetcher = new MusicDataFetcher(); SetVersion("v" + Global.ApplicationVersion); lblIssues.GotFocus += LinkLabel_GotFocus; lblDiscoveredFiles.GotFocus += LinkLabel_GotFocus; if (!EdgeDependencyChecker.CheckEdgeCoreFilesArePresentAndCorrect()) { btnConnectToYoutube.Enabled = false; InstallEdge(); } else { ConnectToYTMusicForm = new ConnectToYTMusic(this); } FileScanner = new FileScanner(this); FileUploader = new FileUploader(this); PlaylistProcessor = new PlaylistProcessor(this); IdleProcessor = new IdleProcessor(this); QueueChecker = new QueueChecker(this); InitialiseTimers(); InitialiseTooltips(); InitialiseSystemTrayIconMenuButtons(); ConnectToYouTubeMusic(); StartMainProcess(); }
public MainForm(bool hidden) : base(formResizable: false) { #if RELEASE CheckForIllegalCrossThreadCalls = false; #endif CultureHelper.GloballySetCultureToGB(); MainFormInstance = this; InitializeComponent(); btnConnectToYoutube.Enabled = false; if (hidden) { ShowInTaskbar = false; CenterForm(); WindowState = FormWindowState.Minimized; Opacity = 0; StartHidden = true; } MusicDataFetcher = new MusicDataFetcher(); SetVersion("v" + Global.ApplicationVersion); lblIssues.GotFocus += LinkLabel_GotFocus; lblDiscoveredFiles.GotFocus += LinkLabel_GotFocus; ConnectToYTMusicForm = new ConnectToYTMusic(this); FileScanner = new FileScanner(this); FileUploader = new FileUploader(this); PlaylistProcessor = new PlaylistProcessor(this); IdleProcessor = new IdleProcessor(this); QueueChecker = new QueueChecker(this); InitialiseTimers(); InitialiseTooltips(); InitialiseSystemTrayIconMenuButtons(); ConnectToYouTubeMusic(); StartMainProcess(); // Restart everything after 24 hours (is the application is continually run) _restartThread = new Thread((ThreadStart) delegate { while (Settings == null) { ThreadHelper.SafeSleep(500); } while (true) { if (Settings.UploadPlaylists) { if (!Settings.LastPlaylistUpload.HasValue) { Settings.LastPlaylistUpload = DateTime.Now.AddHours(Global.SessionRestartHours * -1).AddHours(-2); } if (!_scanAndUploadThread.IsAlive && DateTime.Now > ((DateTime)Settings.LastPlaylistUpload).AddHours(Global.SessionRestartHours) && !PlaylistProcessor.ProcessingPlaylistsFinished) { StartMainProcess(); } } if (DateTime.Now.AddHours(Global.SessionRestartHours * -1) > SessionStart) { SessionStart = DateTime.Now; PlaylistProcessor.ProcessingPlaylistsFinished = false; StartMainProcess(); } ThreadHelper.SafeSleep(15000); } }) { IsBackground = true }; _restartThread.Start(); }