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 和 Polyglot Notebooks。将此内容复制到交互式工具或脚本的源代码中,以引用包。
// 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,太棒了! issuance 网络请求很方便,为什么不一直这么做呢?在你看到你的用户对你的应用程序慢吞吞的 app 给你一:star2:,你发现你同时执行了 过多 的请求。

然后,你尝试手动管理发出较少的请求,当你的应用程序的不同部分相互尝试了解谁在做些什么时,它会变得一团糟。让我们找到更好的方法。

说了这么多,给我个例子

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 Standard netstandard2.0 已兼容。 netstandard2.1 已计算。
.NET Framework 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 Standard 的信息。

NuGet 包 (2)

显示对 Punchclock 依赖的前 2 个 NuGet 包

下载
fusillade

包描述

akavache.http

基于 Akavache 的基于 HttpClient 的 HTTP 请求缓存

GitHub 仓库 (5)

显示对 Punchclock 依赖的前 5 个流行 GitHub 仓库

仓库 星标
HMBSbige/BilibiliLiveRecordDownLoader
Bilibili 直播录制
reactiveui/Fusillade
一个针对移动开发的意见库 HTTP 库
flagbug/Espera
Espera是一款媒体播放器,可以播放您的音乐、YouTube视频、SoundCloud歌曲,并具有特殊的“派对模式”。
Clancey/gMusic
这是一个多平台音乐播放器。
HTBox/crisischeckin
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