// 新建任务 void NewTask(SaveTask.Type type, Save save, IStorageTarget target) { if (_disposed) { throw new Exception("SaveManager had already disposed."); } var task = new SaveTask() { type = type, save = save, target = target, }; // 前期处理 switch (type) { case SaveTask.Type.Save: task.exception = save.ToBytes(out task.data); break; default: task.data = null; task.exception = null; break; } _tasks.Enqueue(task); // 第一个任务需要主动唤起处理线程 if (_tasks.Count == 1) { OnBeginTask(_tasks.Peek()); } }
// 新建任务 static void NewTask(SaveTask.Type type, Save save, ISaveTarget target) { var task = new SaveTask() { type = type, save = save, target = target, }; // 预处理 switch (type) { case SaveTask.Type.Save: task.exception = save.ToBytes(out task.data); break; default: task.data = null; task.exception = null; break; } _tasks.Enqueue(task); // 第一个任务在创建后立即开始执行 if (_tasks.Count == 1) { BeginTask(); } }