ReusableTasks 3.0.0

dotnet add package ReusableTasks --version 3.0.0
NuGet\Install-Package ReusableTasks -Version 3.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ReusableTasks" Version="3.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ReusableTasks --version 3.0.0
#r "nuget: ReusableTasks, 3.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ReusableTasks as a Cake Addin
#addin nuget:?package=ReusableTasks&version=3.0.0

// Install ReusableTasks as a Cake Tool
#tool nuget:?package=ReusableTasks&version=3.0.0

What's Changed

  • Fastpath by @alanmcgovern in https://github.com/alanmcgovern/ReusableTasks/pull/7 . When a ReusableTask continues from another ReusableTask we can pass the StateMachineCache object directly as the continuation to avoid creating an Action which points to the StateMachineCache. This optimisation works for ReusableTask → ReusableTask as well as ReusableTask<T> → ReusableTask and ReusableTask → ReusableTask<T>.

Before

Method Concurrency Depth Iterations Mean Error StdDev Median Gen 0 Gen 1 Allocated
ReusableTask 1 500 1000 64.40 ms 4.009 ms 11.757 ms 61.14 ms - - 32 KB
ReusableTaskInt 1 500 1000 40.76 ms 3.133 ms 8.733 ms 37.86 ms - - 32 KB
ValueTaskInt 1 500 1000 65.22 ms 1.281 ms 2.140 ms 65.50 ms 6300.0000 100.0000 51,452 KB
ReusableTask 4 500 1000 91.19 ms 3.628 ms 10.698 ms 92.22 ms - - 32 KB
ReusableTaskInt 4 500 1000 57.23 ms 2.273 ms 6.630 ms 57.10 ms - - 127 KB
ValueTaskInt 4 500 1000 154.20 ms 3.067 ms 5.835 ms 154.74 ms 22250.0000 1000.0000 182,428 KB

After

Method Concurrency Depth Iterations Mean Error StdDev Median Gen 0 Gen 1 Allocated
ReusableTask 1 500 1000 41.91 ms 1.705 ms 4.667 ms 41.04 ms - - 32 KB
ReusableTaskInt 1 500 1000 34.96 ms 5.059 ms 14.917 ms 33.78 ms - - 32 KB
ValueTaskInt 1 500 1000 61.91 ms 3.413 ms 9.738 ms 56.92 ms 6000.0000 - 49,869 KB
ReusableTask 4 500 1000 55.24 ms 2.077 ms 6.124 ms 54.68 ms - - 32 KB
ReusableTaskInt 4 500 1000 51.82 ms 2.425 ms 7.111 ms 51.74 ms - - 127 KB
ValueTaskInt 4 500 1000 157.49 ms 3.112 ms 8.199 ms 157.46 ms 22500.0000 1000.0000 182,908 KB

Full Changelog: https://github.com/alanmcgovern/ReusableTasks/compare/release-v2.0.3...release-v3.0.0

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 is compatible.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on ReusableTasks:

Package Downloads
MonoTorrent

MonoTorrent is a cross platform and open source implementation of the BitTorrent protocol. It supports many advanced features such as Encryption, DHT, Peer Exchange, Web Seeding and Magnet Links. Notable features include: -Encryption -Dht -Peer Exchange (uTorrent style) -Local Peer Discovery -Web Seeding (getright style) -Magnet Links / Metadata download -IPV6 -FAST Extensions -Sparse files (NTFS file system) -Multi-tracker torrents -Compact tracker responses -IP Address white listing / black listing -Fast Resume -Initial Seeding (super seeding) -Selective downloading -Prioritised downloading -Full bittorrent tracker -Dynamic request queue size -Memory Cache -Endgame mode -Per torrent and global rate limiting -Individual file relocation

DotProxify

Allows proxying TCP connections and UDP dgrams via a SOCKS5 proxy.

RaptureTorrent

MonoTorrent is a cross platform and open source implementation of the BitTorrent protocol. It supports many advanced features such as Encryption, DHT, Peer Exchange, Web Seeding and Magnet Links. Notable features include: -Encryption -Dht -Peer Exchange (uTorrent style) -Local Peer Discovery -Web Seeding (getright style) -Magnet Links / Metadata download -IPV6 -FAST Extensions -Sparse files (NTFS file system) -Multi-tracker torrents -Compact tracker responses -IP Address white listing / black listing -Fast Resume -Initial Seeding (super seeding) -Selective downloading -Prioritised downloading -Full bittorrent tracker -Dynamic request queue size -Memory Cache -Endgame mode -Per torrent and global rate limiting -Individual file relocation

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on ReusableTasks:

Repository Stars
alanmcgovern/monotorrent
The official repository for MonoTorrent, a bittorrent library for .NET
IllusionMods/KKManager
Mod, plugin and card manager for games by Illusion that use BepInEx
Version Downloads Last updated
3.0.0 106 6/20/2024
2.0.3 91 6/12/2024
2.0.2 6,949 3/28/2022
2.0.1 1,917 11/6/2021
2.0.0 455,866 5/18/2020
1.0.8 929 5/18/2020
1.0.7 9,028 4/25/2020
1.0.6 35,921 12/2/2019
1.0.6-beta 1,400 11/28/2019
1.0.5 1,896 11/17/2019
1.0.4 842 11/17/2019
1.0.3 901 11/13/2019
1.0.2 955 11/11/2019
1.0.1 1,822 11/2/2019
1.0.0 1,800 11/1/2019
0.99.4 2,568 10/30/2019
0.99.3 950 10/30/2019
0.99.1 916 10/29/2019
0.99.0 914 10/29/2019
0.0.1 950 10/28/2019