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

View file

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