Хорошо, теперь у нас есть немного больше информации, похоже, ваш EnqueueTask
метод должен выглядеть следующим образом:
public void EnqueueTask(Task task, object[] values)
правый
Для стартеров Я бы не стал использовать имя Task
, которое уже является частью ядра .NET 4 и станет очень выдающимся в .NET 5. Как и Джошуа сказал, что вы в основном получили Func<object[], bool>
.
Далее, вы можете сохранить два списка - один для делегатов и один для значений, но проще просто сохранить Queue<Func<bool>>
следующим образом:
private readonly Queue<Func<bool>> taskQueue = new Queue<Func<bool>>();
public void EnqueueTask(Task task, object[] values)
{
taskQueue.Enqueue(() => task(values));
}
Тогда остальная часть вашего кода будет работать "как есть". Лямбда-выражение там будет захватывать values
и task
, поэтому, когда вы вызываете Func<bool>
, оно передает эти значения исходному делегату.