У меня есть этот код:task.Wait вызывает длительную паузу в моей GUI потоке
public async Task<string> Solve(List<List<Node>> nodeList)
{
List<Task> taskList = new List<Task>();
for (int i = 0; i < nodeList.Count(); i++)
{
int taskNo = i;
Task<List<Node>> task = Task.Factory.StartNew((x) =>
{
List<Node> nodes = new List<Node>(nodeList[i]);
Calculate(nodes);
return nodes;
}, taskNo);
task.Wait();
taskList.Add(task);
}
Task<string> r = BuildReport(taskList);
return r;
}
Этот метод вызывается другим методом на моем UI потоке. Этот метод заставляет мой поток пользовательского интерфейса приостанавливаться и делает окно невосприимчивым в течение 20-50 секунд. У меня такое чувство. Подождите, пока эта пауза. Как мне изменить этот метод, чтобы этого не произошло. Если у меня нет задачи. Подождите, когда taskList не получит в нем правильные задачи.
Спасибо.
Возможно, вызов вашей задачи из другого потока, кроме потока пользовательского интерфейса? –
Вы 'ожидаете этого от вызывающего? – GEEF
Пожалуйста, добавьте код вызова для задачи «Решить» – dpimente