You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.4 KiB
91 lines
2.4 KiB
3 years ago
|
using EC.UsingEventAggregator;
|
||
|
using EC.Utils;
|
||
|
using LibVLCSharp.Shared;
|
||
|
using Prism.Ioc;
|
||
|
using Prism.Modularity;
|
||
|
using Prism.Unity;
|
||
|
using System;
|
||
|
using System.Threading.Tasks;
|
||
|
using System.Windows;
|
||
|
using System.Windows.Threading;
|
||
|
|
||
|
namespace ECMonitor
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// Interaction logic for App.xaml
|
||
|
/// </summary>
|
||
|
public partial class App : PrismApplication
|
||
|
{
|
||
|
protected override void OnStartup(StartupEventArgs e)
|
||
|
{
|
||
|
Core.Initialize();
|
||
|
base.OnStartup(e);
|
||
|
RegisterEvents();
|
||
|
LogFactory.GetLogger().Info("OnStartup");
|
||
|
|
||
|
// await new IpcInfoService().Test();//test sqlite
|
||
|
}
|
||
|
|
||
|
protected override Window CreateShell()
|
||
|
{
|
||
|
return Container.Resolve<MainWindow>();
|
||
|
}
|
||
|
|
||
|
protected override void RegisterTypes(IContainerRegistry containerRegistry)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
|
||
|
{
|
||
|
moduleCatalog.AddModule<NavigationModule>();
|
||
|
}
|
||
|
|
||
|
//protected override IModuleCatalog CreateModuleCatalog()
|
||
|
//{
|
||
|
// return new ConfigurationModuleCatalog();
|
||
|
//}
|
||
|
protected override void OnExit(ExitEventArgs e)
|
||
|
{
|
||
|
base.OnExit(e);
|
||
|
}
|
||
|
|
||
|
private void RegisterEvents()
|
||
|
{
|
||
|
//TaskScheduler.UnobservedTaskException += (sender, args) =>
|
||
|
//{
|
||
|
// MessageBox.Show(args.Exception.Message);
|
||
|
// args.SetObserved();
|
||
|
//};
|
||
|
DispatcherUnhandledException += App_DispatcherUnhandledException;
|
||
|
|
||
|
TaskScheduler.UnobservedTaskException += new EventHandler<
|
||
|
UnobservedTaskExceptionEventArgs>(TaskScheduler_UnobservedTaskException);
|
||
|
|
||
|
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||
|
}
|
||
|
|
||
|
private void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
|
||
|
{
|
||
|
FLogger.Error("Error encountered! Please contact support." + Environment.NewLine + e.Exception.Message);
|
||
|
|
||
|
e.Handled = true;
|
||
|
}
|
||
|
|
||
|
private static void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
|
||
|
{
|
||
|
foreach (Exception item in e.Exception.InnerExceptions)
|
||
|
{
|
||
|
FLogger.Error(string.Format("异常类型:{0}{1}来自:{2}{3}异常内容:{4}",
|
||
|
item.GetType(), Environment.NewLine, item.Source,
|
||
|
Environment.NewLine, item.Message));
|
||
|
}
|
||
|
//将异常标识为已经观察到
|
||
|
e.SetObserved();
|
||
|
}
|
||
|
|
||
|
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||
|
{
|
||
|
FLogger.Error("Unhandled exception.");
|
||
|
}
|
||
|
}
|
||
|
}
|