带有后台作业的Powershell脚本从c#调用

时间:2013-02-14 07:17:02

标签: c# powershell asynchronous

我从c#程序调用Powershell脚本,由于PSObjects而返回pipeline.Invoke()的集合。作为PS脚本的一部分,使用Net.Mail.SmtpClient发送电子邮件。但是,发送电子邮件需要一些时间,因此我将电子邮件发送代码移动到使用Start-Jon -ScriptBlock执行的脚本块中......然后问题就出现了:电子邮件未发送。当我从命令行执行脚本时,它会发送一封电子邮件。

可能是什么原因?

1 个答案:

答案 0 :(得分:1)

实际上,在将Wait-Job添加到代码(使其同步)之后,它再次起作用。我想我明白了。 我在代码的末尾调用runspace.Close()终止主机,因此Powershell后台作业无法执行。不幸的是,我找错了地方。