I personally do not have very much experience with tasks, but from what I did with them, this should not be te problem, because when you call function and pass arguments, that will create references to these argument variables so they will not be garbage collected.
Just take care not to use some variables from outer outer scope (check this answer).
Number of arguments is not so important. More important is how you use them inside separate thread, and passing them like method arguments is ok. If you don't know HOW to pass more arguments, see this answer.
The scenario with closure problems Matthew Watson mentioned would look something like this:
void Method(){
var someVar = GetSomeVar();
var t = Task.Run(() => {
// internal closure uses outer private variable
DoSomething(someVar);
});
someVar = somethingElse;
}
Disclaimer: This answer MAY be wrong, this code MAY work, but I think that your code will not have problems :)