Пример #1
0
        // 新建任务
        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());
            }
        }
Пример #2
0
        // 新建任务
        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();
            }
        }