Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ProcessExclusiveTasks()

void System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ProcessExclusiveTasks ( )
inlineprivate

Definition at line 478 of file ConcurrentExclusiveSchedulerPair.cs.

479 {
480 try
481 {
482 m_threadProcessingMode.Value = ProcessingMode.ProcessingExclusiveTask;
483 for (int i = 0; i < m_maxItemsPerTask; i++)
484 {
485 if (!m_exclusiveTaskScheduler.m_tasks.TryDequeue(out var result))
486 {
487 break;
488 }
489 if (!result.IsFaulted)
490 {
492 }
493 }
494 }
495 finally
496 {
497 m_threadProcessingMode.Value = ProcessingMode.NotCurrentlyProcessing;
499 {
502 }
503 }
504 }

References System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ConcurrentExclusiveTaskScheduler.ExecuteTask(), System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.m_exclusiveTaskScheduler, System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.m_maxItemsPerTask, System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.m_processingCount, System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ConcurrentExclusiveTaskScheduler.m_tasks, System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ProcessAsyncIfNecessary(), and System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.ValueLock.

Referenced by System.Threading.Tasks.ConcurrentExclusiveSchedulerPair.SchedulerWorkItem.Execute().