[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 flashercs 于 2025-1-13 16:17 编辑

powershell 有个简单的多线程方法是 workflow,但是workflow不支持完整的powershell features,且不支持pwsh 6+,例如:powershell 5.1
不支持Write-Host
  1. workflow work1 {
  2.     $Filenames = @("file1.txt", "file2.txt", "file3.txt", "file4.txt", "file5.txt", "file6.txt", "file7.txt", "file8.txt", "file9.txt", "file10.txt", "file11.txt")
  3.   # workflow有很多限制
  4.   # foreach -parallel允许同时最多开启5个线程
  5.   foreach -parallel ($Filename in $Filenames) {
  6.     $i=0
  7.      "Processing $filename"
  8.     $i=1
  9.     #[Threading.Thread]::Sleep(100)
  10.     Start-Sleep -Seconds 1 # Doing some work....
  11.     $i=2
  12.      "Processed $filename"
  13.     $i=3
  14.   }
  15.   
  16. }
  17. [System.Diagnostics.Stopwatch]$watch = [System.Diagnostics.Stopwatch]::StartNew()
  18. work1
  19. $watch.Stop()
  20. $watch.Elapsed # 耗时2.21秒
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表