fix can't catch exception issue

- Origin code can't catch exception in code, and all exceptions goes
into first chance exception hanlding.
- releated: #1266
- http://stackoverflow.com/a/5383408/2833083
-
https://msdn.microsoft.com/en-us/magazine/jj991977.aspx?f=255&MSPPError=-2147217396
This commit is contained in:
bao-qian
2017-03-05 23:59:10 +00:00
parent 6ed9e09451
commit ff29b6e84f
2 changed files with 18 additions and 13 deletions

View File

@@ -14,8 +14,7 @@ namespace Wox.Core
{ {
public static class Updater public static class Updater
{ {
[Conditional("RELEASE")] public static async Task UpdateApp()
public static async void UpdateApp()
{ {
var client = new WebClient { Proxy = Http.WebProxy() }; var client = new WebClient { Proxy = Http.WebProxy() };
@@ -24,9 +23,7 @@ namespace Wox.Core
try try
{ {
// todo 5/9 the return value of UpdateApp() is NULL, fucking useless! // todo 5/9 the return value of UpdateApp() is NULL, fucking useless!
using ( using (var updater = await UpdateManager.GitHubUpdateManager(Infrastructure.Constant.Github, urlDownloader: downloader))
var updater =
await UpdateManager.GitHubUpdateManager(Infrastructure.Constant.Github, urlDownloader: downloader))
{ {
await updater.UpdateApp(); await updater.UpdateApp();
} }

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Threading.Tasks;
using System.Timers; using System.Timers;
using System.Windows; using System.Windows;
using Wox.Core; using Wox.Core;
@@ -94,18 +95,25 @@ namespace Wox
} }
} }
[Conditional("RELEASE")]
private void AutoUpdates() private void AutoUpdates()
{ {
if (_settings.AutoUpdates) Task.Run(async () =>
{ {
// check udpate every 5 hours if (_settings.AutoUpdates)
var timer = new Timer(1000 * 60 * 60 * 5); {
timer.Elapsed += (s, e) => { Updater.UpdateApp(); }; // check udpate every 5 hours
timer.Start(); var timer = new Timer(1000 * 60 * 60 * 5);
timer.Elapsed += async (s, e) =>
{
await Updater.UpdateApp();
};
timer.Start();
// check updates on startup // check updates on startup
Updater.UpdateApp(); await Updater.UpdateApp();
} }
});
} }
private void RegisterExitEvents() private void RegisterExitEvents()