关于调用异步进程,我有点头脑发热。我有我的 void main 函数,我想从第三方 dll 调用一个仅作为异步方法存在的方法 - 我不在乎它是异步的,我只想同步运行它。
那么我该怎么做呢?我快速浏览了如何从 C# 中的同步方法调用异步方法?但它似乎有点复杂,不得不担心上下文等。这应该很容易吧?
谢谢托马斯
关于调用异步进程,我有点头脑发热。我有我的 void main 函数,我想从第三方 dll 调用一个仅作为异步方法存在的方法 - 我不在乎它是异步的,我只想同步运行它。
那么我该怎么做呢?我快速浏览了如何从 C# 中的同步方法调用异步方法?但它似乎有点复杂,不得不担心上下文等。这应该很容易吧?
谢谢托马斯
只需获取返回的任务的 Result 属性
var returned = methodCall().Result;
这将阻塞直到任务完成,然后返回。如果它已经完成,它将继续正常执行。我认为您只想同步调用一个方法一次,但以防万一,请注意,如果您有多个要异步发生的调用,则需要先调用它们,然后再点击结果
var returned1 = methodCall1(); // this is a Task<List<string>>
var returned2 = methodCall2();
var actualValue1 = returned1.Result; // this is the associated List<string>
var actualValue2 = returned2.Result;