| | |
| | | { |
| | | bool resultOK = false; |
| | | var gtsOperationConfig = opConfig as GTSCardOperationConfig; |
| | | List<Task<bool>> taskList = new List<Task<bool>>(); |
| | | //TaskFactory factory = new TaskFactory(TaskCreationOptions.LongRunning, TaskContinuationOptions.None); |
| | | // 如果是多个轴的运动 等每个轴运动结束 |
| | | foreach (var movingOp in gtsOperationConfig.MovingOps) |
| | | { |
| | | resultOK = SingleAxisMoving(movingOp); |
| | | //var task = factory.StartNew<bool>((op) => |
| | | //{ |
| | | // return SingleAxisMoving(op as MovingOption); |
| | | //}, movingOp); |
| | | var task = SingleAxisMoving(movingOp); |
| | | taskList.Add(task); |
| | | } |
| | | Task.WaitAll(taskList.ToArray()); |
| | | resultOK = taskList.All(u => u.GetAwaiter().GetResult()); |
| | | |
| | | return resultOK; |
| | | } |
| | | |
| | |
| | | /// 单个轴 点位到点位运动 |
| | | /// </summary> |
| | | /// <param name="optionPara">运动参数对象</param> |
| | | public bool SingleAxisMoving(MovingOption optionPara) |
| | | public async Task<bool> SingleAxisMoving(MovingOption optionPara) |
| | | { |
| | | return await Task.Run(() => |
| | | { |
| | | bool isSuccessAndStop = false; |
| | | if (IConfig.AxisSettings.FirstOrDefault(a => a.AxisIndex == optionPara.AxisIndex)?.IsAxisEnabled ?? false) |
| | |
| | | LogAsync(DateTime.Now, "", _position); |
| | | } |
| | | return isSuccessAndStop; |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |