public static void Main (string [] args)
{
// Replace the current synchronization context with a GTK synchronization context
// that continues tasks in the main UI thread instead of a random thread from the pool.
SynchronizationContext.SetSynchronizationContext (new GtkSynchronizationContext ());
GLib.ExceptionManager.UnhandledException += HandleException;
TaskScheduler.UnobservedTaskException += HandleUnobservedTaskException;
App.Init ();
CoreServices.Init ();
InitGtk ();
var splashScreen = new SplashScreen (Resources.LoadImage (Constants.SPLASH));
splashScreen.Show ();
Application.Invoke (async (s, e) => await Init (splashScreen));
Application.Run ();
try {
AddinsManager.ShutdownMultimediaBackends ();
} catch (Exception e) {
Log.Exception (e);
}
}