Punchclock 3.4.143

dotnet add package Punchclock --version 3.4.143                
NuGet\Install-Package Punchclock -Version 3.4.143                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Punchclock" Version="3.4.143" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Punchclock --version 3.4.143                
#r "nuget: Punchclock, 3.4.143"                
#r 指令可用于 F# Interactive 和多语言笔记本。将其复制到交互式工具或脚本的源代码中,以引用包。
// Install Punchclock as a Cake Addin
#addin nuget:?package=Punchclock&version=3.4.143

// Install Punchclock as a Cake Tool
#tool nuget:?package=Punchclock&version=3.4.143                

NuGet Stats Build Code Coverage #yourfirstpr <br>

<br /> <a href="https://github.com/reactiveui/punchclock"> <img width="120" heigth="120" src="https://raw.githubusercontent.com/reactiveui/styleguide/master/logo_punchclock/main.png"> </a>

Punchclock:一个用于管理并发操作库

Punchclock 是由 Fusillade 使用的低级调度和优先级库,用于编排挂起的并发操作。

这是什么意思呢?

好吧,你们的手机应用很酷,你们有 async/await。很棒!发网络请求太容易了,为什么不一直这么做呢?在你用户对你应用的怠慢用一颗星星表示不满后,你发现自己正在同时发出 非常多 请求。

然后,你尝试手动管理减少请求数,但结果变成了乱糟糟的一团,因为你的应用程序的不同部分互相渗透以试图弄清楚谁在做什么。让我们一起找出更好的方法。

说了这么多,给我举个例子吧

var wc = new WebClient();
var opQueue = new OperationQueue(2 /*at a time*/);

// Download a bunch of images
var foo = opQueue.Enqueue(1, 
    () => wc.DownloadFile("https://example.com/foo.jpg", "foo.jpg"));
var bar = opQueue.Enqueue(1, 
    () => wc.DownloadFile("https://example.com/bar.jpg", "bar.jpg"));
var baz = opQueue.Enqueue(1, 
    () => wc.DownloadFile("https://example.com/baz.jpg", "baz.jpg"));
var bamf = opQueue.Enqueue(1, 
    () => wc.DownloadFile("https://example.com/bamf.jpg", "bamf.jpg"));

// We'll be downloading the images two at a time, even though we started 
// them all at once
await Task.WaitAll(foo, bar, baz, bamf);

现在,在应用程序的完全不同的部分,如果你需要立即得到某物,你可以通过优先级来指定它

// This file is super important, we don't care if it cuts in line in front
// of some images or other stuff
var wc = new WebClient();
await opQueue.Enqueue(10 /* It's Important */, 
    () => wc.DownloadFileTaskAsync("http://example.com/cool.txt", "./cool.txt"));

这个库还能做什么?

  • 通过 CancellationTokens 或 Observables 进行取消
  • 通过键来确保某些操作不会同时运行
  • 队列暂停/恢复

贡献

Punchclock 是在 OSI 批准的开源许可证下开发的,这使得它可以自由使用和分发,包括商业用途。由于我们采用开放集体模式进行资金和透明度,我们可以将支持和资金流向我们的贡献者和社区。我们热爱参与此项目的每一个人,并且我们很高兴你能加入我们,尤其是如果你是初学者或者以前从未为开源项目做出过贡献。

那么,为即将加入我们这个可爱的人敬一杯——这就是你可以支持我们的方式

产品 兼容的和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET 标准版 netstandard2.0 兼容。 netstandard2.1 已计算。
.NET 框架 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多有关 目标框架.NET 标准版 的信息。

NuGet 包 (2)

显示依赖 Punchclock 的前 2 个 NuGet 包

下载
fusillade

包描述

akavache.http

基于 Akavache 的 HTTP 请求缓存的 HttpClient

GitHub 存储库 (5)

显示依赖 Punchclock 的最受欢迎的前 5 个 GitHub 存储库

存储库 星标
HMBSbige/BilibiliLiveRecordDownLoader
Bilibili 直播录制
reactiveui/Fusillade
一个针对移动开发的见解丰富的 HTTP 库
flagbug/Espera
Espera是一款播放器,可播放您的音乐、YouTube视频、SoundCloud歌曲,并具有特殊的“派对模式”。
Clancey/gMusic
这是一个多平台音乐播放器。
HTBox/crisischeckin
危机检查人类工具箱仓库
版本 下载 最后更新
3.4.143 1,849 5/2/2024
3.4.95-g63ed44e8a1 158 11/24/2022
3.4.3 119,895 2/1/2021
3.4.1 603 1/22/2021
3.3.2 37,660 10/23/2020
3.3.1-ge8d6934868 319 10/23/2020
3.2.7 3,998 7/28/2020
3.2.1 42,313 4/28/2020
3.1.1 101,147 3/21/2019
3.0.17 7,747 2/5/2019
2.1.0 55,871 9/3/2017
2.0.0 19,374 11/10/2016
1.2.0 100,055 10/10/2014
1.1.1 95,528 5/1/2014
1.1.0 1,959 12/5/2013
1.0.1.1 1,404 11/12/2013
1.0.0 1,280 10/9/2013