Я случайно столкнулся с проблемой, которую я смог решить. Тем не менее, меня беспокоит моя неспособность понять, почему код с ошибкой смог скомпилировать (на первом месте).Параметрированное действие
Ниже приводится код ошибки-й изд, что компилируется нормально:
Task<string> myTask = Task<string>.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(1000);
return "mystrineg";
});
myTask.ContinueWith(t => action, CancellationToken.None,
TaskContinuationOptions.NotOnFaulted, TaskScheduler.Default);
Проблема с выше кодом: action
не будет вызываться. Вот исправление я сделал:
Task<string> myTask = Task<string>.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(1000);
return "mystrineg";
});
myTask.ContinueWith(t => action(t.Result), CancellationToken.None,
TaskContinuationOptions.NotOnFaulted, TaskScheduler.Default);
Мой вопрос, почему компилятор позволяет вызывать параметризованным действие без аргумента?
Все ответы правы. Однако я должен был выбрать тот, который прибыл раньше и был ясен. Спасибо вам всем! – James