ThreadInfo DataThread(Func <object> generateData, Action <object> callback, QueueCategory queueCategory, QueuePriority queuePriority) { object data = generateData(); ThreadInfo queueThreadInfo = new ThreadInfo(callback, data); lock (categorizedQueues[queueCategory][(int)queuePriority]) { categorizedQueues[queueCategory][(int)queuePriority].Enqueue(queueThreadInfo); } return(queueThreadInfo); }
public static ThreadInfo RequestData(Func <object> generateData, Action <object> callback, QueueCategory queueCategory = QueueCategory.Default, QueuePriority queuePriority = QueuePriority.High) { ThreadInfo queueThreadInfo = new ThreadInfo(); ThreadStart threadStart = delegate { queueThreadInfo = Instance.DataThread(generateData, callback, queueCategory, queuePriority); }; new Thread(threadStart).Start(); return(queueThreadInfo); }