plinq相关内容

如何正确并行化严重依赖 I/O 的作业

我正在构建一个必须处理大量数据的控制台应用程序. 基本上,应用程序从数据库中获取引用.对于每个引用,解析文件的内容并进行一些更改.这些文件是 HTML 文件,该过程正在使用 RegEx 替换(查找引用并将它们转换为链接)进行繁重的工作.然后将结果存储在文件系统中并发送到外部系统. 如果我按顺序恢复该过程: var refs = GetReferencesFromDB();//~500 ..

PLINQ 的性能比通常的 LINQ 差

令人惊讶的是,在我创建的一个小测试用例中,使用 PLINQ 并没有产生任何好处;事实上,它甚至比通常的 LINQ 还要糟糕. 测试代码如下: int重复计数 = 10000000;private void button1_Click(object sender, EventArgs e){var currTime = DateTime.Now;var strList = Enumerab ..
发布时间:2021-12-25 08:16:38 C#/.NET

何时处置 CancellationTokenSource?

CancellationTokenSource 类是一次性的.快速查看 Reflector 可以证明 KernelEvent 的使用,这是一种(很可能)非托管资源.由于CancellationTokenSource没有finalizer,如果我们不处理它,GC就不会处理. 另一方面,如果您查看 MSDN 文章中列出的示例 托管线程中的取消,只有一个代码片段处理令牌. 在代码中处理它的正 ..
发布时间:2021-12-24 23:55:22 C#/.NET

并行 Foreach 网络服务调用

我们已经实现了需要处理传入批次的应用程序.例如,必须将特定对象类型的一组请求发送到特定的 Web 服务以进行处理 我们已经实现了以下代码片段来做到这一点.如果有任何陷阱,需要您的帮助/指导 var options = new ParallelOptions { MaxDegreeOfParallelism = 10 };Parallel.ForEach(request, options, ..
发布时间:2021-09-04 19:38:46 C#/.NET

反应式框架、PLINQ、TPL 和并行扩展如何相互关联?

至少自 .NET 4.0 发布以来,Microsoft 似乎在支持并行和异步编程方面付出了很多努力,并且似乎已经出现了很多围绕此的 API 和库.尤其是下面这些花哨的名字,最近时常被提及: 反应式框架, PLINQ(并行 LINQ), TPL(任务并行库)和 并行扩展. 现在它们似乎都是 Microsoft 产品,而且它们似乎都针对 .NET 的异步或并行编程场景.但目前尚不清楚 ..

可以并行运行2个Linq查询吗?

我有 2 个 Linq 查询,第一个 Linq 查询返回 1148 条记录,第二个返回 6667 条记录.他们需要执行8分钟.有什么方法可以使它们在并行运行时更快? var productbacklogworkitem =(从workItemcollectionList中的w,其中w.Type.Name =="Product Backlog Item"选择新的{ID = w.Id,名称= ..
发布时间:2021-05-29 21:41:35 C#/.NET

如何使用表达式树为PLINQ构建动态查询

我想为PLINQ定制定制的OrderBy,但我不知道该怎么做. 对于IQueryable,使用可以使用以下代码: 公共静态类QueryableExtensions{公共静态IQueryableOrderBy(此IQueryable源,字符串sortProperty,ListSortDirection sortOrder){var type = typeof(T);v ..
发布时间:2021-05-06 19:48:33 C#/.NET

包含异步和同步的并行循环

我有一个需要并行运行的循环,因为每次迭代都很慢且占用大量处理器,但是我还需要在循环中的每次迭代中调用一个异步方法. 我已经看到了有关如何在循环中处理异步方法的问题,但是我并没有看到异步和同步的组合. 我的(简化)代码如下-我知道由于将异步操作传递给foreach,因此无法正常工作. 受保护的IDictionaryGetReportData(){var ..
发布时间:2021-04-12 18:48:24 C#/.NET

在同一查询中使用AsParallel()和AsSequential()的影响?C#

我在其中一本书中浏览了PLINQ,上面写着: 如果您有一个复杂的查询可以从并行处理中受益但也有一些应按顺序完成的部分,您可以使用AsSequential可以阻止并行处理您的查询. 例如: var parallelResult =数字.AsParallel().AsOrdered().where(i => i%2 == 0).AsSequential(); 我想了解为什么允许使用 ..
发布时间:2021-04-01 22:03:10 C#/.NET

并行ForEach在生成之前等待500毫秒

我有这种情况: var task = new List...Parallel.ForEach(任务,currentTask => currentTask.Execute()); 是否可以指示PLinq等待500ms,直到产生下一个线程? System.Threading.Thread.Sleep(5000); 解决方案 您正在使用 Parallel.Foreach ..
发布时间:2021-04-01 21:14:53 C#/.NET

大名单上的plinq需要花费大量时间

我在记忆列表中有两个游戏,而消费者有一个1500万个对象,另一个有约300万个。 以下是我要触发的一些查询.. consumersn = consumers.AsParallel() .Where(w => play.Any(x = > x.consumerid == w.consumerid)) .ToList(); List Consumerid ..
发布时间:2020-09-26 20:05:54 C#/.NET

AsParallel()和Any()?

我看过这段代码,它使用 AsParallel()和 Any()检查条件: bool IsAnyDeviceConnected() { return m_devices.Any(d => d.IsConnected); } 并使其变得更快: bool IsAnyDeviceConnected() { return m_devices.AsParallel ..
发布时间:2020-05-31 18:51:31 C#/.NET

用PLinq替换Task.WhenAll

我有一种方法可以并行多次调用WCF服务.为了防止目标系统过载,我想使用PLinq的功能来限制并行执行的次数.现在,我想知道如何有效地重写我的方法. 这是我当前的实现方式: private async Task RunFullImport(IProgress progress) { var dataEntryCache = new ConcurrentHashSet ..
发布时间:2020-05-24 21:49:21 C#/.NET

如何充分依靠I/O适当并行化作业

我正在构建一个必须处理大量数据的控制台应用程序. 基本上,应用程序从数据库中获取引用.对于每个引用,请分析文件的内容并进行一些更改.这些文件是HTML文件,此过程使用RegEx替换进行了大量工作(查找引用并将其转换为链接).然后将结果存储在文件系统中并发送到外部系统. 如果我继续该过程,请按顺序进行: var refs = GetReferencesFromDB(); // ~5 ..