我想要调用由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”); //如何调用没有死锁的方法? } ' –