У меня есть код ниже (упрощен для чтения).Моя проблема в том, что задачи в списке полностью идентичны, если тип возвращаемого значения является типом значения (bool / int) и имеют одинаковое значение.Задачи больше не равны, если результатом является ссылочный тип (например, bool?) Или если, например, будет возвращаться другое значение типа int.
Я не понимаю, почему задачи равны, даже если они действительно работаютправильно (консоль записывает в журнал все 6 значений), может кто-нибудь объяснить или указать мне какую-нибудь документацию, которая могла бы объяснить это.
[TestMethod]
public async Task RunMultipleTasks()
{
var list = new List<int> {0, 1, 2, 3, 4, 5};
var tasks = list.Select(i => RunSimple(i)).ToList();
var x = await Task.WhenAll(tasks);
Assert.IsTrue(tasks[0]== tasks[1]);
}
private async Task<bool> RunSimple(int i)
{
Console.WriteLine(i);
return true;
}
Также я заметил, что задача больше не идентична, если я добавляю задержку внутри метода RunSimpleили если я удалю асинхронный файл и верну Task.FromResult (true)