PowerShell多线程执行前后台作业的例子

所属分类: 脚本专栏 / PowerShell 阅读数: 469
收藏 0 赞 0 分享

下面例子使用Powershell线程运行了两个后台任务和一个前台任务,创建几个运行时间长点的任务,并且每个任务命令中添加使用Start-Sleep。

复制代码 代码如下:

$start = Get-Date

$task1 = { Start-Sleep -Seconds 4; Get-Service }
$task2 = { Start-Sleep -Seconds 5; Get-Service }
$task3 = { Start-Sleep -Seconds 3; Get-Service }

# run 2 in separate threads, 1 in the foreground
$thread1 = [PowerShell]::Create()
$job1 = $thread1.AddScript($task1).BeginInvoke()

$thread2 = [PowerShell]::Create()
$job2 = $thread2.AddScript($task2).BeginInvoke()

$result3 = Invoke-Command -ScriptBlock $task3

do { Start-Sleep -Milliseconds 100 } until ($job1.IsCompleted -and $job2.IsCompleted)

$result1 = $thread1.EndInvoke($job1)
$result2 = $thread2.EndInvoke($job2)

$thread1.Runspace.Close()
$thread1.Dispose()

$thread2.Runspace.Close()
$thread2.Dispose()

$end = Get-Date
Write-Host -ForegroundColor Red ($end - $start).TotalSeconds

相继执行这3个任务从Start-Sleep中看至少需要花费12秒。但是这个脚本仅执行了5秒多一点。其结果保存为$result1, $result2和$result3。与后台作业对比,它在返回大数据用时将差不多。

文章出处:http://www.pstips.net/

更多精彩内容其他人还在看

PowerShell Out-File禁止覆盖文件的方法

这篇文章主要介绍了PowerShell Out-File禁止覆盖文件的方法,只要加一个NoClobber参数即可,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell Out-File向只读文件写入内容的方法

这篇文章主要介绍了PowerShell Out-File向只读文件写入内容的方法,只需要加一个-Force参数即可,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell Out-File指定文件编码的方法

这篇文章主要介绍了PowerShell Out-File指定文件编码的方法,例如怎样创建一个UTF-8编码的文件,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell Out-File追加字符串到文件末尾的方法

这篇文章主要介绍了PowerShell Out-File追加字符串到文件末尾的方法,只要加一个-Append参数即可实现追加内容需求,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中使用Out-File把字符串或运行结果保存到文件的方法

这篇文章主要介绍了PowerShell中使用Out-File把字符串或运行结果保存到文件的方法,重点在于Out-File命令的使用方法上,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell面向对象编程基础知识总结

这篇文章主要介绍了PowerShell面向对象编程基础知识总结,本文着重讲解面向对象的一些概念,又给出了Get-Member命令输出类的属性和方法的例子,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子

这篇文章主要介绍了PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子,即PowerShell中如何使用.NET对象的一些方法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中的变量基础知识介绍

这篇文章主要介绍了PowerShell中的变量基础知识介绍,本文的知识点是需要牢记的,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell获取系统环境变量的方法

这篇文章主要介绍了PowerShell获取系统环境变量的方法,本文讲解了列出所有的环境变量的方法和获取环境变量的值的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

PowerShell中定义多行字符串变量的方法

这篇文章主要介绍了PowerShell中定义多行字符串变量的方法,本文介绍PowerShell中如何定义一个跨多行的字符串变量,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多