@@ -18,7 +18,12 @@ public static class Scheduler {
1818 static Thread schedulerThread ,
1919 backgroundThread ;
2020
21-
21+ #if DEBUG_SCHEDULER
22+ public static event EventHandler < SchedulerTaskEventArgs > TaskAdded ;
23+ public static event EventHandler < SchedulerTaskEventArgs > TaskRemoved ;
24+ public static event EventHandler < SchedulerTaskEventArgs > TaskExecuted ;
25+ public static event EventHandler < SchedulerTaskEventArgs > TaskExecuting ;
26+ #endif
2227 public static int CriticalTaskCount {
2328 get {
2429 lock ( BackgroundTaskQueueLock ) {
@@ -65,6 +70,7 @@ static void MainLoop() {
6570 } else {
6671 task . IsExecuting = true ;
6772#if DEBUG_SCHEDULER
73+ task . ExecuteStart = DateTime . UtcNow ;
6874 FireEvent ( TaskExecuting , task ) ;
6975#endif
7076
@@ -82,6 +88,7 @@ static void MainLoop() {
8288#endif
8389
8490#if DEBUG_SCHEDULER
91+ task . ExecuteEnd = DateTime . UtcNow ;
8592 FireEvent ( TaskExecuted , task ) ;
8693#endif
8794 }
@@ -130,6 +137,7 @@ static void BackgroundLoop() {
130137 static void ExecuteBackgroundTask ( SchedulerTask task ) {
131138 task . IsExecuting = true ;
132139#if DEBUG_SCHEDULER
140+ task . ExecuteStart = DateTime . UtcNow ;
133141 FireEvent ( TaskExecuting , task ) ;
134142#endif
135143
@@ -146,6 +154,7 @@ static void ExecuteBackgroundTask( SchedulerTask task ) {
146154#endif
147155
148156#if DEBUG_SCHEDULER
157+ task . ExecuteEnd = DateTime . UtcNow ;
149158 FireEvent ( TaskExecuted , task ) ;
150159#endif
151160 }
@@ -162,11 +171,9 @@ internal static void AddTask( [NotNull] SchedulerTask task ) {
162171 FireEvent ( TaskAdded , task ) ;
163172 if ( Tasks . Add ( task ) ) {
164173 UpdateCache ( ) ;
165- Logger . Log ( LogType . Debug ,
166- "Scheduler.AddTask: Added {0}" , task ) ;
167- } else {
168- Logger . Log ( LogType . Debug ,
169- "Scheduler.AddTask: Added duplicate {0}" , task ) ;
174+ Logger . Log ( LogType . Debug , "Scheduler.AddTask: Added {0}" , task ) ;
175+ } else {
176+ Logger . Log ( LogType . Debug , "Scheduler.AddTask: Added duplicate {0}" , task ) ;
170177 }
171178#else
172179 if ( Tasks . Add ( task ) ) {
@@ -282,6 +289,10 @@ public static void PrintTasks( [NotNull] Player player ) {
282289 lock ( TaskListLock ) {
283290 foreach ( SchedulerTask task in Tasks ) {
284291 player . Message ( task . ToString ( ) ) ;
292+ #if DEBUG_SCHEDULER
293+ TimeSpan delta = task . ExecuteEnd - task . ExecuteStart ;
294+ player . Message ( " Exceution time: {0} milliseconds" , delta . TotalMilliseconds ) ;
295+ #endif
285296 }
286297 }
287298 }
0 commit comments