发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
来源:互联网 发布:mac 服务器域名怎么看 编辑:程序博客网 时间:2024/06/05 03:04
应用场景
多线程在需要批量处理一些任务的时候相当有用,也更加有利于充分利用现有计算机的能力。所有主流的开发语言都支持多线程。
默认情况下,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
- PowerShell中多线程和异步处理的支持
- Powershell原生支持的cURL
- 支持NB-IoT网络的终端模块 移远即将发布业界第一款BC95模块
- Powershell原生支持的cURL - Invoke-WebRequest
- PowerShell只支持.NET2.0的问题
- PowerShell 3.0的模块自动加载
- PowerShell FTP客户端上传下载模块的编写
- python模块的发布
- python小练习八——多线程的发布工具
- Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块
- Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块
- Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块
- Nginx发布1.9.0版本,新增支持TCP代理和负载均衡的stream模块
- JAVA多线程—并发库中对“数字”的支持
- angular2——发布angular2模块,服务
- powershell 自动编译发布
- 编写PowerShell脚本模块
- IdentityServer4(OAuth2.0服务)折腾笔记
- EF通用数据层封装类(支持读写分离,一主多从)
- 编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)
- ASP.NET 开发者 开始学习ASP.NET Core 2吧
- [翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Visual Studio
- 发布支持多线程的PowerShell模块 —— MultiThreadTaskRunner
- [深圳/广州]微软SQL技术沙龙分享会(MVP)
- [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比
- 码农不重视文档:开源项目深受其苦
- [.NET跨平台]Jexus独立版本的便利与过程中的一些坑
- [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 选择什么来衡量
- Identity Service
- [认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)
- 基于OAuth2的认证(译)