Task
으로 다운 캐스트되었을 때 Task<T>
의 결과를 얻을 수있는 방법이 있습니까? 이것이 리플렉션과 관련이 있다는 것을 알고 있지만, 없으면 할 수있는 방법이 있습니까? 아마도 Expression
을 사용했을까요? 는 여기에 내가 뭘 원하는지의 예 :일반 작업이 아닌 결과 얻기
RunResult RunTask(Task task)
{
task.Wait();
object result = ???;
if (result is RunResult)
return (RunResult)result;
return RunResult.Success;
}
내가 다른 과부하를함으로써이 작업을 수행 할 수 있다는 것을 알고,하지만 난 행동이 과부하가 선택됩니다에 따라 변경됩니다 것을 좋아하지 않는다.
작업에 결과가 없으면이 상황에서 null이 좋습니다.
작업을 '작업 (으)로 전환하는 편이 낫습니다. –
Lee
@Asad 나는 동의할만한 좋은 방법 이겠지만 불행히도 작업은 이미 기본 유형으로 시스템을 통과하고 있습니다. – Janiels
'RunResult'는 열거 형일뿐입니다. 그러나 훨씬 더 복잡 할 수 있습니다. – Janiels