powershell - 在powershell中获取.Net对象异步方法的结果

标签 powershell async-await

我正在尝试在 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/

相关文章:

windows - 批处理 Powershell,从 url 下载文件只会导致文件的一部分?

powershell - 从高级 session 开始非高级提示

html - 将 get-content 放入 html 电子邮件的数组中

powershell - 在启动或停止 Azure VM 之前是否需要检查实例状态?

windows - Windows 8.1 的什么功能使 Visual Studio 任务窗口包含有关异步操作的详细信息?

events - 使异步方法等待Dart事件

powershell sendkeys 无法与阿拉伯字符正常工作

xamarin.forms - 在 xamarin 表单中异步加载数据的正确方法

c# - 并行查询多个数据表时,异步 Controller 不会向 View 返回任何内容

node.js - 对 AWS SQS 执行 5000 多个 promise 的 AWS Lambda 函数极其不可靠