public static DispatchConcurrentQueue GlobalQueue() { if (sGlobalQueue == null) { sGlobalQueue = new DispatchConcurrentQueue("Global Queue", 4); } return(sGlobalQueue); }
public static void SyncGlobal(Action task, Priority priority = Priority.Normal) { DispatchConcurrentQueue.GlobalQueue().Sync(task, priority); }
public static void Run() { DispatchConcurrentQueue dcq = DispatchConcurrentQueue.GlobalQueue(); dcq.Suspend(); dcq.Async(() => { Console.WriteLine("Starting Task High"); Thread.Sleep(1000); Console.WriteLine("Finish Task High"); }, Dispatch.Priority.High); dcq.Async(() => { Console.WriteLine("Starting Task Lowest"); Thread.Sleep(1000); Console.WriteLine("Finish Task Lowest"); }, Dispatch.Priority.Lowest); dcq.Async(() => { Console.WriteLine("Starting Task 1"); Thread.Sleep(1000); Console.WriteLine("Finish Task 1"); }); dcq.Async(() => { Console.WriteLine("Starting Task 2"); Thread.Sleep(1000); Console.WriteLine("Finish Task 2"); }); dcq.Async(() => { Console.WriteLine("Starting Task 3"); Thread.Sleep(1000); Console.WriteLine("Finish Task 3"); }); dcq.Async(() => { Console.WriteLine("Starting Task 4"); Thread.Sleep(1000); Console.WriteLine("Finish Task 4"); }); dcq.Async(() => { Console.WriteLine("Starting Task 5"); Thread.Sleep(1000); Console.WriteLine("Finish Task 5"); }); dcq.Async(() => { Console.WriteLine("Starting Task Highest"); Thread.Sleep(1000); Console.WriteLine("Finish Task Highest"); }, Dispatch.Priority.Highest); dcq.Resume(); Console.WriteLine("Waiting on Sync"); dcq.Sync(() => { Console.WriteLine("Sync"); }, Dispatch.Priority.Lowest); Thread.Sleep(100000000); }