[Tizen.Applications.Common] Add a timer for handling GC collection (#716)
authorpjh9216 <jh9216.park@samsung.com>
Mon, 18 Feb 2019 00:14:07 +0000 (09:14 +0900)
committerGitHub <noreply@github.com>
Mon, 18 Feb 2019 00:14:07 +0000 (09:14 +0900)
* Add a timer for handling GC collection

- Once apps receive low memory events, GC collection will happen at the
  same time.
- This patch is for distribution of GC collection event.

Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
* Use overloaded method for Random.next

Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
src/Tizen.Applications.Common/Tizen.Applications/CoreApplication.cs [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 298f635..6a72aee
@@ -17,6 +17,7 @@
 using System;
 using System.Globalization;
 using System.Text;
+using System.Timers;
 using Tizen.Applications.CoreBackend;
 
 namespace Tizen.Applications
@@ -30,6 +31,8 @@ namespace Tizen.Applications
         private readonly ICoreBackend _backend;
         private bool _disposedValue = false;
 
+        private static Timer sTimer;
+
         /// <summary>
         /// Initializes the CoreApplication class.
         /// </summary>
@@ -175,6 +178,14 @@ namespace Tizen.Applications
         protected virtual void OnLowMemory(LowMemoryEventArgs e)
         {
             LowMemory?.Invoke(this, e);
+            sTimer = new Timer(new Random().Next(10 * 1000));
+            sTimer.Elapsed += OnTimedEvent;
+            sTimer.AutoReset = false;
+            sTimer.Enabled = true;
+        }
+
+        private static void OnTimedEvent(Object source, ElapsedEventArgs e)
+        {
             System.GC.Collect();
         }