C#学习教程:如何创建C#async powershell方法?分享


如何创建C#async powershell方法?

所以我想创建一种异步运行PowerShell脚本的方法。 下面的代码是我到目前为止,但它似乎不是异步,因为它锁定应用程序,输出不正确。

public static string RunScript(string scriptText) { PowerShell ps = PowerShell.Create().AddScript(scriptText); // Create an IAsyncResult object and call the // BeginInvoke method to start running the // pipeline asynchronously. IAsyncResult async = ps.BeginInvoke(); // Using the PowerShell.EndInvoke method, get the // results from the IAsyncResult object. StringBuilder stringBuilder = new StringBuilder(); foreach (PSObject result in ps.EndInvoke(async)) { stringBuilder.AppendLine(result.Methods.ToString()); } // End foreach. return stringBuilder.ToString(); } 

你是异步调用它。

但是,您通过调用EndInvoke()同步等待异步操作完成,从而EndInvoke()了目的。

要实际异步运行它,您还需要使方法异步。
您可以通过调用Task.Factory.FromAsync(...)来获取异步操作的Task ,然后使用await

上述就是C#学习教程:如何创建C#async powershell方法?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960049.html

发表评论

邮箱地址不会被公开。 必填项已用*标注