У меня есть делегат func, который определяется следующим образом:
public enum RunEndStatus
{
Success
}
public class classA
{
Func<object, RunEndStatus> ProcessCalibrationRun { get; set; }
}
Теперь в другом классе, скажем, classB, я делаю что-то вроде этого,
public class ClassB
{
public void DoSomething()
{
ClassA a = new ClassA();
a.ProcessCalibrationRun = ProcessCalibrationRun;//This is just fine. It won't complain here.
}
public RunEndStatus ProcessCalibrationRun(object obj)
{
//Here I have some piece of code takes so much time. To replicate it,
Thread.Sleep(10000);
}
}
Когда DoSomethingМетод откуда-то вызывается, приложение блокируется на 10 минут. Поэтому я пытаюсь решить мою проблему следующим образом:
public async Task<RunEndStatus> ProcessCalibrationRun(object obj)
{
await Task.Run(() => { Thread.Sleep(10000)});
return RunEndStatus.Success;
}
Я изменяю вызов следующим образом.Но он говорит, что не может ждать метода группы.Пожалуйста, помогите, как я могу ждать на этом методе.
public async void DoSomething()
{
ClassA a = new ClassA();
a.ProcessCalibrationRun = await ProcessCalibrationRun; //Here it complains saying cannot await method group.
}