从第三方dll调用Async方法作为同步C#

时间:2013-08-30 05:01:56

标签: c# visual-studio-2012 dll asynchronous synchronous

我对调用异步进程有点大脑冻结。我有我的void main函数,我想从第三方dll调用一个方法,它只作为异步方法存在 - 我不关心它是异步我只是想同步运行它。

那我该怎么做呢?我快速浏览了How to call asynchronous method from synchronous method in C#?,但它看起来有点复杂,不得不担心上下文等等。这应该很容易吗?

由于 托马斯

1 个答案:

答案 0 :(得分:1)

只需获取返回的Task的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;