object36963566
должен быть последним экземпляром в вашем списке плиток
Это потому, что foreach
работает в текущей реализации .Net. Хотя это будет исправлено в будущем.
Вам нужно прочитать Закрытие переменной цикла, которая считается вредной , чтобы понять, как работает foreach в этом случае.
Task.CurrentId +"Info object"+ info.GetHashCode()
info
в приведенном выше коде относится к элементу в списке tiles
. delegate
, который вы создаете, не будет использовать элемент, на который ссылался info
, когда он (делегат) был создан. Скорее он будет использовать текущее значение info
(значение, на которое указала информация, когда метод / делегат будет фактически запущен), которое, очевидно, указывает на последний элемент списка. Вот почему вы получаете это поведение