Из моего маленького эксперимента кажется, что все задачи равны.
Есть ли способ сравнить 2 задачи?
В моем понимании подуматьэто единственный способ создать дублирующую задачу из задачи t1, это сделать еще одну ссылку на нее.Итак, я подумал, что Equals
будет проще поддерживать.
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
var allTasks = new List<Task>();
for (int i = 0; i < 10; ++i)
{
allTasks.Add(producerTask(i));
}
if (allTasks[0].Equals(allTasks[1]) && allTasks[0] == allTasks[1])
{
Console.WriteLine("Wrong tasks are equal");
}
var t1 = allTasks[8];
if (!allTasks[8].Equals(t1) || !t1.Equals((allTasks[8])))
{
Console.WriteLine("Same tasks are not equal");
}
Task.WaitAll(allTasks.ToArray());
}
static Task producerTask(int i)
{
Console.WriteLine(i);
return Task.CompletedTask;
}
}
Вывод:
0
1
2
3
4
5
6
7
8
9
Wrong tasks are equal