我想要調用由Task<T>
的反射式實例的異步方法,我用了Task.WaitAll
和.GetAwaiter().GetResult()
,但所有這些會導致死鎖。 現在該怎麼辦?如何通過使用反射調用C#中的異步方法,不會導致死鎖?
例如:
鑑於
async Task<T> Add<T>(T model);
這是我要做的事
void InvokeByReflection(object model) {
MethodInfo method = typeof(SAMPLE).GetTypeInfo().GetMethod("Add");
}
如何調用方法,無需僵局?
你可以發佈一個代碼示例?什麼是你的應用程序的類型?安慰?贏得表格? asp.net? – areller
對於如何使用反射來調用方法的問題,它是否導致死鎖是無關緊要的。對於如何在不導致死鎖的情況下等待任務的問題,您是否使用反射是無關緊要的。他們是兩個無關的問題。你需要哪一方面的幫助? – hvd
*例如: ' async任務添加(T型號); void InvokeByReflection(object model) MethodInfo method = typeof(SAMPLE).GetTypeInfo()。GetMethod(「Add」); //如何調用沒有死鎖的方法? } ' –