代码改变世界

随笔分类 -  [04] .NET 并行与异步(APM, EAP, TAP等)

C# 中一个限制 Task 并发执行的数量的示例

2019-09-09 11:58 by 音乐让我说, 3305 阅读, 收藏, 编辑
摘要: 直接贴代码了: 运行截图: 谢谢浏览! 阅读全文

一个简单的 ValueTask 的示例

2019-07-30 18:20 by 音乐让我说, 556 阅读, 收藏, 编辑
摘要: Task 确实有潜在的缺点,特别是对于实例创建很多 并且高吞吐量和性能是关键问题的场景 : Task 是一个类。作为一个类,这意味着任何需要创建一个对象的操作都需要分配一个对象,分配的对象越多,垃圾收集器(GC)需要做的工作就越多,我们花在它上面的资源就越多可以花在做其他事情上。 参考:https: 阅读全文

一个简单 System.Threading.Tasks.Dataflow.TransformBlock 示例

2019-07-30 16:37 by 音乐让我说, 539 阅读, 收藏, 编辑
摘要: 直接贴代码了: 谢谢浏览! 阅读全文

一个简单 System.Threading.Tasks.Dataflow.BufferBlock 示例

2019-07-30 16:25 by 音乐让我说, 1202 阅读, 收藏, 编辑
摘要: 直接贴代码了: 谢谢浏览! 阅读全文

在 .NET Core 中使用异步的 ADO.NET 的简单示例

2019-07-18 18:12 by 音乐让我说, 1091 阅读, 收藏, 编辑
摘要: 直接贴代码: Program.cs config.json .csproj 谢谢浏览! 阅读全文

如何让 FFmpeg 支持异步并行转码、截图等等操作?

2019-03-29 16:31 by 音乐让我说, 1538 阅读, 收藏, 编辑
摘要: 直接贴代码了: ffmpegTest02.cs public partial class ffmpegTest02 : FormBase { private static readonly string TaskffmpegNETExeFullPath = ConfigurationManager. 阅读全文

C# 中如何创建异步平行任务?

2019-03-29 11:05 by 音乐让我说, 403 阅读, 收藏, 编辑
摘要: 解释都在代码里,直接贴代码了: private async void btnStartRequestResource_Click(object sender, EventArgs e) { ShowAndLog("准备开始异步并行任务,可能耗时较长,请稍后...", false, null); St 阅读全文

一个利用 Parallel.For 并行处理任务,带有进度条(ProgressBar)的 WinForm 实例(下)

2019-03-25 19:53 by 音乐让我说, 591 阅读, 收藏, 编辑
摘要: 接着上一篇:一个利用 Parallel.For 并行处理任务,带有进度条(ProgressBar)的 WinForm 实例(上) 直接贴代码了: 运行截图: 谢谢浏览! 阅读全文

一个利用 Parallel.For 并行处理任务,带有进度条(ProgressBar)的 WinForm 实例(上)

2019-03-25 09:25 by 音乐让我说, 831 阅读, 收藏, 编辑
摘要: 代码很简单: 效果图: 下一篇(高级篇):一个利用 Parallel.For 并行处理任务,带有进度条(ProgressBar)的 WinForm 实例(下) 谢谢浏览! 阅读全文

Task 小记

2018-09-22 16:45 by 音乐让我说, 220 阅读, 收藏, 编辑
摘要: 1. 注意 Task 执行的顺序。 如下代码: 这个方法有一个问题,就是第 15 行没有 await,这样执行的时候有一个 BUG,其实第 14 行和第 15 行几乎是同时执行,虽然第 14 行有一个 await,但仅仅是把第 14 行的返回值赋值给 int recordCount,而第 15 行同 阅读全文

一个简单的利用 WebClient 异步下载的示例(五)(完结篇)

2018-09-20 11:52 by 音乐让我说, 1471 阅读, 收藏, 编辑
摘要: 接着上一篇,我们继续来优化。我们的 SkyParallelWebClient 可否支持切换“同步下载模式”和“异步下载模式”呢,好处是大量的代码不用改,只需要调用 skyParallelWebClient.StartAsync() 就开始异步下载,而改为 skyParallelWebClient.S 阅读全文

一个简单的利用 WebClient 异步下载的示例(四)

2018-09-13 18:48 by 音乐让我说, 429 阅读, 收藏, 编辑
摘要: 接上一篇,我们继续优化它。 1. DownloadEntry 类 public class DownloadEntry { public string Url { get; set; } public string Path { get; set; } /// <summary> /// 当前处理的 阅读全文

一个简单的利用 WebClient 异步下载的示例(三)

2018-09-12 19:31 by 音乐让我说, 259 阅读, 收藏, 编辑
摘要: 继续上一篇 一个简单的利用 WebClient 异步下载的示例(二) 后,继续优化它。 1. 直接贴代码了: DownloadEntry: public class DownloadEntry { public string Url { get; set; } public string Path 阅读全文

并行 Webclient(一)

2018-09-11 16:28 by 音乐让我说, 345 阅读, 收藏, 编辑
摘要: 在 Stackoverflow 上看到了一个提问,关于并行的 WebClient,觉得回答者的代码很有参考性,下面记录一下,以便日后用到: 提问者: 我有一个功能基本上分为两个子功能。 通过优化RetrieveHTML并列化来加速此过程的最佳方法是什么? 通常我用最多20000个索引来调用它。第一个 阅读全文

一个简单的利用 WebClient 异步下载的示例(二)

2018-09-11 14:59 by 音乐让我说, 292 阅读, 收藏, 编辑
摘要: 继上一篇 一个简单的利用 WebClient 异步下载的示例(一) 后,我想把核心的处理提取出来,成 SkyWebClient,如下: 1. SkyWebClient 该构造函数中 downloadConfigs 参数是必须的,不能为 NULL,而 ProgressBar progressBar 可 阅读全文

一个简单的利用 WebClient 异步下载的示例(一)

2018-09-11 11:12 by 音乐让我说, 645 阅读, 收藏, 编辑
摘要: 继上一篇文章 一个简单的利用 HttpClient 异步下载的示例 ,我们知道不管是 HttpClient,还算 WebClient,都不建议每次调用都 new HttpClient,或 new WebClient,而应该尽量重复对象,可以把一个 WebClient(或 HttpClient)理解成 阅读全文

一个 Github 上使用 HttpClient 的 Sample

2018-09-10 18:39 by 音乐让我说, 788 阅读, 收藏, 编辑
摘要: 地址:https://github.com/MikeWasson/HttpClientSample 截图: 直接贴代码了: 服务端: 完毕! 客户端 谢谢浏览! 阅读全文

关于 Task.Run 简单的示例

2018-09-09 17:27 by 音乐让我说, 3072 阅读, 收藏, 编辑
摘要: 1. 关于 Task.Run 简单的示例01 直接贴代码了: 运行截图: 2. 关于 Task.Run 简单的示例02 直接贴代码了: 运行截图: 3. 关于 Task.Run 简单的示例03 4. 5. 直接贴代码了: 运行截图: 谢谢浏览! 阅读全文

关于 AutoResetEvent 的介绍的简单示例

2018-09-09 17:03 by 音乐让我说, 247 阅读, 收藏, 编辑
摘要: 关于 AutoResetEvent 的介绍的简单示例 直接贴代码了: 运行截图: 关于 委托的 BeginInvoke 方法 直接贴代码了: 运行截图(注意:多线程返回的值为 NULL,有问题): 谢谢浏览! 阅读全文

一个简单的利用 HttpClient 异步下载的示例

2018-09-09 16:46 by 音乐让我说, 634 阅读, 收藏, 编辑
摘要: 可能你还会喜欢 一个简单的利用 WebClient 异步下载的示例 ,且代码更加新。 1. 定义自己的 HttpClient 类。 2. 完成核心下载方法。 3. 制作 UI 4. 运行截图 5. 疑问 最后,需要注意的是我们的 SkyHttpClient 是每次下载一个图片都会创建一个,那这种每次 阅读全文