나는이 대기 작업과 함께 대기 명령을 사용했습니다.C# Generic을 Async로 변경 한 후이 오류를 해결하는 방법? 작업 <T>
public static async Task<T> GetCompletedTask<T>(this T command) where T : CommandBase
{
var tcs = command.GetTaskCompletionSource();
await tcs.Task.ConfigureAwait(false);
return command;
}
다음은 사용할 예제입니다.
var result = await Class.GoRun(1).GetCompletedTask();
일반 "GoRun"으로 작성되었습니다. 내가 GoRun에서 기다리고 사용할 때문에
public T GoRun<T>(int RunnderID)
where T : CommandBase
....
는하지만 ... 를 비동기하기 위해 "GoRun"를 변경해야합니다. 나는 이렇게 변한다.
public async Task<T> GoRun<T>(int RunnderID)
where T : CommandBase
....이 수정 후
. "GetCompletedTask"오류가 발생합니다.
어떻게 수정해야합니까 (GetCompletedTask)? 여기
오류 메시지입니다. 내 생각에
'System.Threading.Tasks.Task<Bg7Uwp1.Commands.Device.SerialConnectCommand>' can not use T in a generic type or method 'CommandExtensions.GetCompletedTask<T>(T)' There is NO "Implicit reference conversion"
From 'System.Threading.Tasks.Task<Bg7Uwp1.Commands.Device.SerialConnectCommand>' to 'Bg7Uwp1.Commands.CommandBase'
Bg7Uwp1
을 (나는 영어 일본어 번역), I는 "getCompletedTask"을 수정해야합니다. 나는 조금 ..하지만 생각 ...
_ "Genereic을 비동기로 변경 한 후 _"_? o_O – SeM
어떤 오류가 발생합니까? – Karolis
어떤 제목이 더 좋습니까? 나는 최선의 노력을 다했다. ... (^ _ ^; –