лично я не очень большой опыта работы с задачами, но от того, что я сделал с ними, это не должно быть теми проблемами, потому что при вызове функции и передать аргументы, которые будут создавать ссылки на этот аргумент переменные поэтому они не будут собирать мусор. Просто следите за тем, чтобы не использовать некоторые переменные из внешнего внешнего пространства (check this answer).
Число аргументов не так важно. Более важно то, как вы используете их в отдельном потоке, и передавать их, как аргументы метода, в порядке. Если вы не знаете КАК передать больше аргументов, см. this answer.
Сценарий проблемы закрытия Мэтью Уотсон упомянул бы выглядеть примерно так:
void Method(){
var someVar = GetSomeVar();
var t = Task.Run(() => {
// internal closure uses outer private variable
DoSomething(someVar);
});
someVar = somethingElse;
}
Отказ от ответственности: Этот ответ может быть неправильным, этот код может работать, но я думаю, что ваш код не будет проблем :)
пример кода –
Он должен быть безопасным, за исключением того, что вам нужно следить за проблемами «закрытия». Образец кода необходим, как говорит Горан. :) –
@GoranObradovic добавленный образец кода. – user960567