发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
應用場景
多線程在需要批量處理一些任務的時候相當有用,也更加有利于充分利用現有計算機的能力。所有主流的開發語言都支持多線程。
默認情況下,PowerShell作為一個腳本語言,是不支持多線程操作的,雖然有所謂的后臺任務,但實際上控制起來相當麻煩。
?
解決方案
我很喜歡PowerShell,所以為此專門寫了一個自定義的模塊,來實現多線程的功能。該模塊使用C#編寫,源代碼可以在下面的地址訪問到
https://github.com/chenxizhang/MultiThreadTaskRunner
?
與此同時,這個模塊已經打包發布到微軟官方的PowerShell Gallery中
https://www.powershellgallery.com/packages/MultiThreadTaskRunner/1.0
?
如何使用
要使用該模塊,首先需要進行安裝(請用管理員身份打開PowerSehll)
Install-Module -Name MultiThreadTaskRunner
?
接下來,準備一個用來測試的腳本塊
$script ={
param($obj);
Write-Host $obj
}
請注意,這里只是用最簡單的代碼做了實現,根據傳入的一個參數,輸出數據
?
第三步,就可以進行快速使用了
New-MultiTaskJob –Source 1..100 –Block $script –ThreadCount 10
這個命令的意思是指,用10個并行的線程,處理傳入的100個數字,實際上每個線程分配得到的數字是10個,然后使用此前定義好的腳本塊執行它
請注意,你可以看到此時輸出的結果并不是按照1到100的順序進行,這個可以證明實際上這些數字是被不同的線程進行處理的。
原文地址:http://www.cnblogs.com/chenxizhang/p/6936666.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [深圳/广州]微软SQL技术沙龙分享会(
- 下一篇: EF通用数据层封装类(支持读写分离,一主