From 945d4795fff6fb3a2a43fbdc45bb263b8bd36b14 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 24 Sep 2020 08:34:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=85=8D=E7=BD=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=8B=E6=AC=A1=E6=89=8D=E7=94=9F=E6=95=88=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Changes.md | 4 ++++ SyncClipboard/Config.cs | 1 + SyncClipboard/Program.cs | 8 ++++---- SyncClipboard/PullService.cs | 15 ++++++++++++--- SyncClipboard/Settings.cs | 3 ++- SyncClipboard/UpdateChecker.cs | 2 +- 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/Changes.md b/Changes.md index 77624d9e..a186f693 100644 --- a/Changes.md +++ b/Changes.md @@ -1,3 +1,7 @@ +v1.1.3 +- add mutex when writing/reading remote files +- optimize architecture + v1.1.2 - change profile file's syntax - update ios workflow diff --git a/SyncClipboard/Config.cs b/SyncClipboard/Config.cs index a9e37fed..6e6adc76 100644 --- a/SyncClipboard/Config.cs +++ b/SyncClipboard/Config.cs @@ -79,6 +79,7 @@ public static void Save() Properties.Settings.Default.RetryTimes = RetryTimes; Properties.Settings.Default.TimeOut = TimeOut; Properties.Settings.Default.Save(); + Load(); } private static string FormatHttpAuthHeader(string user, string password) diff --git a/SyncClipboard/Program.cs b/SyncClipboard/Program.cs index f812b24a..b0ec2557 100644 --- a/SyncClipboard/Program.cs +++ b/SyncClipboard/Program.cs @@ -13,7 +13,7 @@ static class Program public static MainController mainController; public static ClipboardListener ClipboardListener; - public static PullService syncService; + public static PullService pullService; public static PushService pushService; /// @@ -39,7 +39,7 @@ static void Main() mainController = new MainController(); ClipboardListener = new ClipboardListener(); - syncService = new PullService(mainController.GetNotifyFunction()); + pullService = new PullService(mainController.GetNotifyFunction()); pushService = new PushService(mainController.GetNotifyFunction()); Application.Run(); @@ -56,9 +56,9 @@ private static void CurrentDomain_UnhandledException(object sender, UnhandledExc } private static void Application_ApplicationExit(object sender, EventArgs e) { - if (syncService != null) + if (pullService != null) { - syncService.Stop(); + pullService.Stop(); } if (pushService != null) { diff --git a/SyncClipboard/PullService.cs b/SyncClipboard/PullService.cs index db0b9ad1..43059f6b 100644 --- a/SyncClipboard/PullService.cs +++ b/SyncClipboard/PullService.cs @@ -75,10 +75,21 @@ private void PullLoop() errorTimes += 1; Console.WriteLine(ex.ToString()); Notify(false, true, ex.Message.ToString(), Config.GetProfileUrl() + "\n重试次数:" + errorTimes.ToString(), "重试次数:" + errorTimes.ToString(), "erro"); + if (errorTimes > Config.RetryTimes) + { + Config.IfPull = false; + Config.Save(); + Notify(true, false, "剪切板同步失败,已达到最大重试次数", ex.Message.ToString(), null, "erro"); + } continue; } + finally + { + RemoteClipboardLocker.Unlock(); + Thread.Sleep((int)Config.IntervalTime); + } - RemoteClipboardLocker.Unlock(); + errorTimes = 0; Profile remoteProfile = new Profile(strReply); Profile localProfile = Profile.CreateFromLocalClipboard(); @@ -88,8 +99,6 @@ private void PullLoop() Notify(true, false, "剪切板同步成功", remoteProfile.Text, null, "info"); } Notify(false, true, "服务器连接成功", null, "正在同步", "info"); - - Thread.Sleep((int)Config.IntervalTime); } } } diff --git a/SyncClipboard/Settings.cs b/SyncClipboard/Settings.cs index 31ee87de..e3d9cc3b 100644 --- a/SyncClipboard/Settings.cs +++ b/SyncClipboard/Settings.cs @@ -18,8 +18,9 @@ private void SettingChangingEventHandler(object sender, System.Configuration.Set } private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { - Program.syncService.Load(); + Program.pullService.Load(); Program.pushService.Load(); + Program.mainController.LoadConfig(); } } } diff --git a/SyncClipboard/UpdateChecker.cs b/SyncClipboard/UpdateChecker.cs index d291494b..7d90e7a2 100644 --- a/SyncClipboard/UpdateChecker.cs +++ b/SyncClipboard/UpdateChecker.cs @@ -6,7 +6,7 @@ namespace SyncClipboard { class UpdateChecker { - public const string Version = "1.1.2"; + public const string Version = "1.1.3"; public const string UpdateUrl = "https://api.github.com/repos/Jeric-X/SyncClipboard/releases/latest"; public const string ReleaseUrl = "https://github.com/Jeric-X/SyncClipboard/releases/latest";