help
Root Question Message
_pathFinder.FindPath
is not called.returnFirstPath
is false (Task.WhenAll)list.Add(new Task<PathResult>(action));
to list.Add(Task.Run(action));
, it works. 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);
}
new Task
=> Task.Run
await await
Task
because you should not use new Task
pathResult
probably tooSign In and Join Server To See
var tasks = roadPoints.Select(roadPoint =>
{
var isThatActuallyNeeded = roadPoint;
Task.Run(() =>
{
return _pathFinder.FindPath(
sourcePoint, setting.SearchRange,
isThatActuallyNeeded , CheckTarget, CheckObstacle, ComputeWeight
);
}
});
var pathResult = returnFirstPath
? await Task.WhenAny(tasks)
: (await Task.WhenAll(list)).MinBy(p => p.Path.Length);
Sign In and Join Server To See
Sign In and Join Server To See
Sign In and Join Server To See
return
Sign In and Join Server To See
Sign In and Join Server To See
var pathResult = _pathFinder.FindPath
return Task.Run
<== the return was missingTask
that's in such a weird state that new Task
doesSign In and Join Server To See
new Task
has NEVER been designed for AsyncSign In and Join Server To See
Sign In and Join Server To See
new Task
ctor thing ... existsSign In and Join Server To See