jjzjj

parallel-processing

全部标签

c# - 如何从 .NET 程序打开 Web 浏览器? Process.Start() 不工作?

我有一个URL,我想在默认浏览器中启动它。我尝试了两种方法:Process.Start("http://stackoverflow.com");...以及本otherquestion中详述的那个使用ShellExecute。在这两种情况下,我都收到错误消息:Windows找不到“http://stackoverflow.com”'.请确保您输入的名称正确,然后重试。虽然它不应该尝试将其作为文件打开...据我了解,它应该将其识别为URL并在默认浏览器中打开它。我错过了什么?顺便说一句:操作系统=Vista,而.NET=3.5编辑:根据thisMSKBarticle,因为Process.S

c# - "The debugger cannot continue running the process."

我一直在搞乱VS2010调试设置,试图让.NETFramework正常工作。好吧,我无法让它工作。我也尝试过ReflectorVS插件,它曾一度有效。然后我随机开始收到这个错误:当我在调用IEnumerable.ToList()的行上设置断点时,这仅发生.如果我尝试单步跳过或单步进入我设置断点的那一行,我会收到此错误对话框并且我的调试session结束。如果我将断点移动到下面的行,调试器会使其通过ToList()打电话!我试过以下方法都无济于事:删除Reflector插件。在“工具”>“选项”>“调试”窗口中撤消我的更改(取消选中进入.NETFramework的选项;取消选中源服务器选

c# - C#中的并行树遍历

我需要快速遍历一棵树,我想并行进行。我宁愿使用并行扩展,也不愿手动启动一堆线程。我当前的代码看起来像这样:publicvoidTraverse(Noderoot){varnodeQueue=newQueue();nodeQueue.Enqueue(root);while(nodeQueue.Count!=0){varnode=nodeQueue.Dequeue();if(node.Property=someValue)DoSomething(node);foreach(varnodeinnode.Children){nodeQueue.Enqueue(node);}}}我真的希望Par

c# - Parallel.Foreach 与正常 ForEach 一样快/慢

更新:我使用线程在内核数量(在我的案例中为8个)中拆分循环,并且整个循环在不到1秒的时间内完成。所以问题不在于,使用线程操作不会更快。为什么ParralelExtension在这种情况下会失败?大家好。我想用Parrallel.Foreach转换我的ForEach。问题是,并行化几乎没有给我带来任何好处。原文:foreach(Entities.Buchungbuchunginbuchungen){Int32categoryID=manager.GetCategoryID(newRegelengine.Booking(buchung));//Average4msbuchung.Categ

c# - 我必须处理 Process.Start(url) 吗?

简单问题:我想使用默认浏览器打开一个URL,所以我只执行Process.Start(url)。但是,我注意到这会返回一个IDisposable对象。所以现在我想知道我是否必须处理它?或者,就此而言,如果我的应用程序以任何方式负责此过程?预期的功能只是“即发即忘”,我不想让我的应用程序成为新进程的父进程,也不需要与之交互。我在SO上看到了一些类似但不相关的问题,这些问题似乎在说简单地在URL上调用Process.Start就可以了,但我不想遇到一些难以调试的内存泄漏/资源耗尽问题导致我我的程序保留对长期死掉的浏览器进程的引用。 最佳答案

c# - Parallel.For 和 For 产生不同的结果

如果我运行这个测试:varr=newRandom();varints=newint[13];Parallel.For(0,2000000,i=>{varresult=r.Next(1,7)+r.Next(1,7);ints[result]+=1;});我得到以下结果:2:92,144453:0,417654:0,622455:0,825256:1,040357:1,252158:1,05319:0,834110:0,633411:0,419212:0,2109当我使用常规For时:for(inti=0;i输出是:2:2,77973:5,586454:8,34145:11,099356:

c# - 以线程安全的方式添加到 Parallel.ForEach 循环中的列表

我有一些代码在名为ListofObjects的obj对象列表上像这样工作:ListNewListofObjects();Parallel.ForEach(ListofObjects,obj=>//DosomeoperationshereonobjtogetanewobjNewListofObjects.Add(newobj););现在我退出了Parallel.ForEach循环,我想对NewListofObjects进行操作。但是,当我尝试执行以下操作时出现此错误:“尝试读取或写入protected内存。这通常表示其他内存已损坏”。这是因为我的NewListofObjects.Add(

c# - 如何根据最佳实践在 C# 4 中创建异步方法?

考虑以下代码片段:publicstaticTaskFetchAsync(){stringurl="http://www.example.com",message="HelloWorld!";varrequest=(HttpWebRequest)WebRequest.Create(url);request.Method=WebRequestMethods.Http.Post;returnTask.Factory.FromAsync(request.BeginGetRequestStream,request.EndGetRequestStream,null).ContinueWith(t=

c# - 日志文件的并行 GZip 解压缩 - 调整 MaxDegreeOfParallelism 以获得最高吞吐量

我们每天有多达30GB的GZip日志文件。每个文件包含100.000行,压缩后大小在6到8MB之间。已剥离解析逻辑的简化代码利用了Parallel.ForEach循环。在双NUMA节点、32个逻辑CPU盒(IntelXeonE7-2820@2GHz)上,MaxDegreeOfParallelism处理峰值的最大行数:usingSystem;usingSystem.Collections.Concurrent;usingSystem.Linq;usingSystem.IO;usingSystem.IO.Compression;usingSystem.Threading.Tasks;nam

c# - CancellationToken Cancel 不脱离 BlockingCollection

我有一个这样的取消标记staticCancellationTokenSourceTokenSource=newCancellationTokenSource();我有一个像这样的阻塞集合BlockingCollectionitems=newBlockingCollection();varitem=items.Take(TokenSource.Token);if(TokenSource.CancelPending)return;当我打电话TokenSource.Cancel();Take没有像它应该的那样继续。如果我将TryTake与民意调查一起使用,token会显示它被设置为已取消。