В следующем коде я передаю действие, объявленное вне StartNew, выглядит нормально.Использование Task.Factory.StartNew с действием, которое принимает один параметр int
Action ac =() => { Console.WriteLine("Executing Action in Task 7!"); };
var t7 = Task.Factory.StartNew(ac );
Task.WaitAny(t7);
Но я хочу передать параметр Int к действию (я хочу объявить действие вне StartNew).
Action<int> ac2 = (n) =>
{
Console.WriteLine("Executing Action with 1 parameter = {0}", n);
};
var t9 = Task.Factory.StartNew( ac2 , 4); //Problem here????
Следующий код в порядке, но я не хочу использовать действие таким образом. Я хочу определить действие снаружи и вызвать его внутри StartNew(), как указано выше. Как использовать ac2, чтобы получить тот же результат, что и код ниже.
var t8 = Task.Factory.StartNew( (n) =>
{
Console.WriteLine("Executing Action in Task 8!");
Console.WriteLine("Param pass {0}", n);
}, 4);
Task.WaitAny(t8);
Используйте 'Action
Отключить тему, но обычно вы должны использовать 'Task.Run()' – MickyD
Вы можете сделать это: 'var t9 = Task.Factory.StartNew (() => {ac2 (4);});' – Rob