PowerShell-3.多线程
多线程 PowerShell
2023-09-11 14:14:00 时间
$start = Get-Date
$task1 = {
$vUrl = 'http://img.mottoin.com/wp-content/uploads/2016/09/5-25.png'
$vLocalPath = 'c:/aaa.png'
Sleep(5)
Import-Module BitsTransfer
Start-BitsTransfer "$vUrl" "$vLocalPath"
Invoke-Item "$vLocalPath"
}
$task2 =
{
for($i=1;$i -le 20;$i++){
Sleep(1)
Write-Host "loop number_task2$i"
}
}
$task3 = {
for($i=1;$i -le 10;$i++){
Sleep(1)
Write-Host "loop number_task3$i"
}
}
# 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
测试结果:
第一个任务可以下载一张图片,并且打开。
第二个任务可以执行,但是不会在前台输出,但是可以根据退出时间来估算这个任务跑了。
第三个任务可以执行,并且在控制台界面输出相关结果。
相关文章
- PowerShell-3.多线程
- Python多线程_thread和Threading
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
- Java并发和多线程:序
- c# .net 的async和await 异步编程(多线程编程) 在不同场景下的使用解析
- 创建多线程的三种方式
- Java多线程同步 synchronized 关键字的使用
- GDB多线程调试
- Qt中多线程间的同步方法(使用QMutex互斥锁,数据库读取写入并发用很关键)
- 第十七节:Runnable创建线程,Thread创建线程,唤醒线程和计数器多线程,线程同步与等待
- opencv多线程显示的问题和解决方法
- Java学习-070-多线程03:Thread 类和 Runnable 接口的联系和区别
- Linux环境下 多线程下载 (Python 实现版)
- 多线程之线程状态
- python:多线程
- 多线程复习2
- 多线程程序的奇怪问题记录