我正在尝试在 Powershell 中实例化的 .Net 对象上调用异步方法:
Add-Type -Path 'my.dll'
$myobj = new-object mynamespace.MyObj()
$res = $myobj.MyAsyncMethod("arg").Result
Write-Host "Result : " $res
执行脚本时,shell 似乎没有等待
MyAsyncMethod().Result
并且不显示任何内容,尽管检查返回值表明它是正确的类型( Task<T>
)。其他各种尝试,例如中间变量,Wait()
等没有给出任何结果。我在网上找到的大部分内容都是关于从 C# 异步调用 Powershell 脚本的。我想要相反的,但似乎没有人有兴趣这样做。这甚至可能吗,如果没有,为什么?
最佳答案
我知道这是一个非常古老的线程,但可能是您实际上从 async 方法中收到错误,但由于您使用的是 .Result
而被吞下。 .
尝试使用 .GetAwaiter().GetResult()
而不是 .Result
这将导致任何异常冒泡。
关于powershell - 在powershell中获取.Net对象异步方法的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851704/