草庐IT

PARALLEL

全部标签

c# - 尝试声明并行任务时出错

usingSystem.Threading.Tasks;{publicpartialclassForm1:Form{ParallelmyParallelTask;这会导致以下错误:Cannotdeclareavariableofstatictype"System.Threading.Task.Parallel".不确定这个声明有什么问题。 最佳答案 Parallel是一个静态类。你可以构造一个Task或Task,但是Parallel仅通过方法使用,例如Parallel.For和Parallel.ForEach,并且不需要实例。

windows - 我不明白为什么在 Perl 中使用 Parallel::ForkManager 时所有 fork 的子节点不会同时启动

我正在制作2个fork。我有两个案例:我只记下每个fork的时间我记下每个fork的时间,然后执行一些步骤,例如请求一个网站。根据我的理解,在这两种情况下,两个child的开始时间差异应该在相同的范围内。但在这两种情况下,存在很大差异。case1代码:useParallel::ForkManager;useWWW::Mechanize;useLWP::UserAgent;useTime::HiResqw/gettimeofday/;useTime::Formatqw/%time/;usePOSIXqw(strftime);useTime::HiResqw(gettimeofday);$

c# - Parallel.ForEach 问题 - 读写文件 - 文件正在使用错误

我对Parallel.ForEach真的很困惑......它是如何工作的?下面的代码有错误->FileIsInUseParallel.ForEach(list_lines_acc,(line_acc,list_lines_acc_state)=>{FileStreamfile=newFileStream(GPLfilePath,FileMode.Open,FileAccess.ReadWrite);StreamReaderreader=newStreamReader(file);varprocessed=string.Empty;Ok_ip_port=string.Empty;whil

c++ - 在 python 线程中调用 TBB 'parallel_for'

我有一个用于公开函数的python自定义c++模块,其中一些函数使用TBB(tbb21_015oss)来加速处理。到目前为止,在Win32环境中从Python(2.6.2)调用TBB加速函数时我没有遇到任何问题。但是现在,我在从Python线程(通过使用threading.Thread类创建)调用此类函数时遇到问题-在调用相同函数时,从主Python线程工作正常。调用该函数导致应用程序崩溃,并显示以下消息:First-chanceexceptionat0x03522e96inpython.exe:0xC0000005:Accessviolationreadinglocation0x00

C# 并行与。线程代码性能

我一直在测试System.Threading.Parallel与Threading的性能,我很惊讶地发现Parallel比线程需要更长的时间来完成任务。我确定这是由于我对Parallel的了解有限,我才刚刚开始阅读它。我想我会分享一些片段,如果有人能向我指出并行代码比线程代码运行得更慢。还尝试运行相同的比较来查找素数,发现并行代码比线程代码完成得晚得多。publicclassThreadFactory{intworkersCount;privateListthreads=newList();publicThreadFactory(intthreadCount,intworkCount,

c# - 为什么 Interlocked.Increment 在 Parallel.ForEach 循环中给出不正确的结果?

我有一项迁移工作,完成后我需要验证目标数据。为了通知管理员验证成功/失败,我使用计数器比较数据库1中表Foo的行数与数据库2中表Foo的行数。Database2中的每一行都根据Database1中的相应行进行验证。为了加快这个过程,我使用了一个Parallel.ForEach循环。我最初的问题是计数总是与我的预期不同。后来发现+=和-=操作不是线程安全的(不是原子的)。为解决此问题,我更新了代码以在计数器变量上使用Interlocked.Increment。这段代码打印出一个更接近实际计数的计数,但是,每次执行似乎都不同,它没有给出我期望的结果:PrivatecountObjectsA

c# - Parallel.For 在大约 1370 次迭代后卡住,不知道为什么

我正在对7500多个对象运行Parallel.For循环。在那个for循环中,我对每个对象做了很多事情,特别是调用两个Web服务和两个内部方法。Web服务只是检查对象、处理并返回一个字符串,然后我将其设置为对象的属性。两个内部方法也是如此。我没有将任何内容写入磁盘或从磁盘读取。我还使用标签和进度条更新了winforms应用程序中的UI,让用户知道它的位置。这是代码:vartask=Task.Factory.StartNew(()=>{Parallel.For(0,upperLimit,(i,loopState)=>{if(cancellationToken.IsCancellation

c# - Parallel Linq - 使用比处理器更多的线程(对于非 CPU 绑定(bind)任务)

我正在使用并行linq,我正在尝试使用如下基本代码同时下载许多url:intthreads=10;Dictionaryresults=urls.AsParallel(threads).ToDictionary(url=>url,url=>GetPage(url);由于下载网页受网络限制而不是CPU限制,因此使用比我的处理器/内核数量更多的线程是非常有益的,因为每个线程的大部分时间都花在等待网络catch。然而,根据在我的双核机器上运行threads=2与threads=10具有相同性能的事实判断,我认为发送到AsParallel的线程数受限于核心数。有什么方法可以覆盖这种行为吗?是否有

c# - Parallel.For 和 Break() 的误解?

我正在研究For循环中的并行中断。看完this和this我还有一个问题:我希望这段代码:Parallel.For(0,10,(i,state)=>{Console.WriteLine(i);if(i==5)state.Break();}最多生成6个数字(0..6)。不仅他没有这样做,而且结果长度不同:023514860135420135642非常烦人。(Break(){after5}到底在哪里??)于是我看了一下msdnBreakmaybeusedtocommunicatetotheloopthatnootheriterationsafterthecurrentiterationnee

c# - Stop vs Break in Parallel.For

我很难理解loopState.Stop()和loopState.Break()。我已经阅读了MSDN和几篇关于它的帖子,但我仍然感到困惑。我的理解是,每个迭代分区程序都为线程提供剩余索引以供处理,loopState.Stop()停止所有线程,loopState.Break()停止当前线程线程。但是让我们考虑以下情况:Parallel.For(0,100,(i,loopState)=>{if(i>=10)loopState.Break();Debug.Write(i);});对于这个循环我有以下结果:02512345678910我不知道为什么结果中有10和25个数字。有人可以帮忙吗?附言