void _run()
        {
            for (int i = 0; i < mDeviceTasks.Length; i++)
            {
                mCurrentTaskIndex = i;
                TaskStart?.Invoke(mDeviceTasks[i]);
                LogWrapper.LogInfoFormat("设备[{0}] 开始任务 {1}/{2} {3}", mDevice.SerialNumber,
                                         i + 1, mDeviceTasks.Length, mDeviceTasks[i].ToString());
                var result = mDeviceTasks[i].Run(mDevice);
                TaskEnd?.Invoke(mDeviceTasks[i], result);
                if (!result.ok)
                {
                    LogWrapper.LogInfoFormat("设备[{0}] 执行任务失败 {1}/{2} {3} 错误信息:{4}", mDevice.SerialNumber,
                                             i + 1, mDeviceTasks.Length, mDeviceTasks[i].ToString(), result.Msg);
                    break;
                }
                else
                {
                    LogWrapper.LogInfoFormat("设备[{0}] 完成任务 {1}/{2} {3}", mDevice.SerialNumber,
                                             i + 1, mDeviceTasks.Length, mDeviceTasks[i].ToString());
                }
            }

            mDeviceTasks      = null;
            mTask             = null;
            mCurrentTaskIndex = 0;

            LogWrapper.LogInfoFormat("设备[{0}] 完成所有任务", mDevice.SerialNumber);
        }