Releases: pwsh-cs-tools/core
v0.6.1 - Beta
Release Notes:
Adds the -SkipDependencies switch for easier manual dependency management
See the r/PowerShell series on embedding engines in PowerShell:
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.6.0 - Beta
Release Notes:
Deprecates TempPath and replaces it with NativePath which can load native files 5 times faster.
See the r/PowerShell series on embedding engines in PowerShell:
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.5.4 - Beta
Release Notes:
Improves TempPath Performance
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.5.2 - Beta
Release Notes:
Implement better version control and fix cache bugs
Fix TempPath issues
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.5.1 - Beta
Release Notes:
Hotfix for cached packages
Fix TempPath issues
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.5.0 - Beta
Release Notes:
Add caching of -Path packages and add support for SemVer2 packages
Fix TempPath issues
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.4.4 - Beta
Release Notes:
Add and Parallelize Temp File Garbage Collection
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.4.3 - Beta
Release Notes:
Fix unmanaged and offline loading. Also increases NuGet API performance.
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.4.2 - Beta
Release Notes:
Disables dependency loading when Offline flag is specified. Thank you @pl4nty!
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-ThreadController
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-ThreadController -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads
Links:
v0.4.1 - Beta
Release Notes:
Adds support for framework-agnostic os-agnostic files. Does not add support for framework-agnostic os-specific files (this may or may not be added at a later date).
To test, install it with PowerShell and PackageManagement (OneGet)
Import-Module Import-Package
# Import-Module New-DispatchThread # - v0.2.1
Import-Module New-ThreadController # - v0.3.0
# --- Avalonia ---
Import-Package Avalonia.Desktop -Offline
# Import-Package Avalonia.Win32 -Offline]
# --- ThreadExtensions ---
Set-DispatcherFactory ([ThreadExtensions.Dispatcher])
$t1 = New-DispatchThread
$t1.Invoke({ Write-Host "test - ThreadExtensions" }).
Invoke({ Write-Host "done - ThreadExtensions" }, $true) | Out-Null
# --- WPF ---
Write-Host
Set-DispatcherFactory ([System.Windows.Threading.Dispatcher])
$t2 = New-DispatchThread -Name "Tester"
$t2.Invoke({ Write-Host "test - WPF" }).
Invoke({ Write-Host "done - WPF" }, $true) | Out-Null
# Now supports Async scriptblocks:
Async { Write-Host "test - async 1" } -Sync # automatically disposed runspace
Async { Write-Host "test - async 2" } -Thread $t1 -Sync # if you don't want to dispose the runspace, you can use an existing one
Async { Write-Host "test - async 3" } -Thread "Tester" # you can also specify the thread by its name
Write-Host
Write-Host (Get-Runtime)
Write-Host
Write-Host "Threads:"
$Threads = Get-Threads
$Threads