static void MoveToPosition(SystemServiceClient Service, string pName) { string filepath = programDataFile + $"\\{pName}.json"; if (!File.Exists(filepath)) { throw new FileNotFoundException($"{ pName }.json is not found"); } string data = File.ReadAllText(filepath); PointInfo pointInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <PointInfo>(data); int maxRank = pointInfo.AxisInfos.Last().Rank; for (int i = 0; i < maxRank; i++) { List <Task> tasks = new List <Task>(); foreach (var mem in pointInfo.AxisInfos) { if (mem.Rank == i + 1) { var m = Service.__SSC_MoveAxisAsync(pointInfo.Aliger, mem.AxisName, SSC_MoveMode.ABS, mem.Speed, mem.Position); // Task t = new Task(() => { Service.__SSC_MoveAxisAsync(pointInfo.Aliger, mem.AxisName, SSC_MoveMode.ABS, mem.Speed, mem.Position); }); // t.Start(); tasks.Add(m); } } Task.WaitAll(tasks.ToArray()); } }