Srinubabu Ravilla Ответов: 1

Что не так в этой кодовой задаче на основе programinng


runningTasks.Add(Task.Run(() => ProcessTagsValidationInsertion(tvlFileTracker, tempRemainderTags)));
Array.Clear(tempRemainderTags, 0, tempRemainderTags.Length);

tempRemainderTags - массив объектов

Посте я ясно проживания в стороне от задач, элементы которого были переданы задача становится нулем.

Может ли кто-нибудь сказать мне, как очистить источник задачи, мне нужно пополнить этот массив и снова перейти к той же задаче.

Что я уже пробовал:

Я пытался сохранить массив, но это не дало бы должных результатов.

1 Ответов

Рейтинг:
0

St0rmi

Задача получает указатель на объекты массива, а не копию. Поэтому, когда вы очищаете массив, указатель приводит к пустому массиву. Вы можете передать клон массива, который будет работать:

runningTasks.Add(Task.Run(() => ProcessTagsValidationInsertion(tvlFileTracker, tempRemainderTags.Clone)));


Richard Deeming

Clone это метод, поэтому вам нужно будет добавить скобки к вызову:

tempRemainderTags.Clone()

Он также возвращается object вместо строго типизированного массива, поэтому вам также нужно будет добавить typecast.