From 61a3e14f356268e959f2c3f53ca2e17d9229177c Mon Sep 17 00:00:00 2001 From: JoonghyunCho Date: Tue, 21 Jan 2020 15:51:44 +0900 Subject: [PATCH] Add preloading features --- Managed/Tizen.Init/Tizen.Init.cs | 40 +++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/Managed/Tizen.Init/Tizen.Init.cs b/Managed/Tizen.Init/Tizen.Init.cs index eb6c817..b523677 100644 --- a/Managed/Tizen.Init/Tizen.Init.cs +++ b/Managed/Tizen.Init/Tizen.Init.cs @@ -155,7 +155,7 @@ namespace Tizen.Init { } PreloadLibICU(); - PreloadElmSharp(); + PreloadTizenFX(); PreloadEnd(); } @@ -199,6 +199,13 @@ namespace Tizen.Init { } } + static void PreloadTizenFX() + { + PreloadElmSharp(); + PreloadSystemInfo(); + PreloadTizenSynchronizationContext(); + } + static void PreloadElmSharp() { try @@ -213,5 +220,36 @@ namespace Tizen.Init { Console.WriteLine("Fail to preload ElmSharp"); } } + + static void PreloadSystemInfo() + { + try + { + Assembly assem = LoadAssembly("Tizen.System.Information"); + var type = assem.GetType("Tizen.System.Information"); + type.GetMethod("TryGetValue", BindingFlags.Static | BindingFlags.Public).MakeGenericMethod(typeof(int)).Invoke(null, new object[]{ "http://tizen.org/feature/screen.width", null}); + } + catch (Exception e) + { + Console.WriteLine(e.ToString()); + Console.WriteLine("Fail to preload system information"); + } + } + + static void PreloadTizenSynchronizationContext() + { + try + { + Assembly assem = LoadAssembly("Tizen.Applications.Common"); + var type = assem.GetType("Tizen.Applications.TizenSynchronizationContext"); + type = type.GetNestedType("GSourceManager", BindingFlags.Static | BindingFlags.NonPublic); + type.GetMethod("Post", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { null }); + } + catch (Exception e) + { + Console.WriteLine(e.ToString()); + Console.WriteLine("Fail to preload TizenSynchronizationContext"); + } + } } } -- 2.34.1