© 2026 Hedgehog Software, LLC
_pathFinder.FindPath
returnFirstPath
list.Add(new Task<PathResult>(action));
list.Add(Task.Run(action));
for (var j = 0; j < roadPoints.Length; j++) { var j1 = j; Func<PathResult> action = () => { var pathResult = _pathFinder.FindPath ( sourcePoint, setting.SearchRange, roadPoints[j1], CheckTarget, CheckObstacle, ComputeWeight ); return pathResult; }; list.Add(new Task<PathResult>(action)); } PathResult pathResult; if (returnFirstPath) { pathResult = await await Task.WhenAny(list); } else { var pathResults = await Task.WhenAll(list); pathResult = pathResults.MinBy(p => p.Path.Length); }