草庐IT

parallel-extensions

全部标签

c# - List<Object> 上的 Parallel.ForEach 线程安全

就线程安全而言,可以这样做还是我需要使用不同的集合?ListfileInfo=getList();Parallel.ForEach(fileInfo,fileMember=>{//ModifyeachfileMember} 最佳答案 只要您只是修改传递给方法的项目的内容,就不需要锁定。(当然前提是列表中没有重复引用,即对同一FileMemberEntity实例的两个引用。)如果需要修改列表本身,创建一个可以迭代的副本,修改列表时使用锁:ListfileInfo=getList();Listcopy=newList(fileInfo)

c# - 使用 Parallel.ForEach() 线程安全吗?

本质上,我正在处理这个:vardata=input.AsParallel();Listoutput=newList();Parallel.ForEach(data,line=>{StringoutputLine="";//**Dosomethingwith"line"andstoreresultin"outputLine"**//Additionally,therearesomethis.InvokestatementsforupdatingUIoutput.Add(outputLine);});输入是List目的。ForEach()语句对每个值进行一些处理,更新UI,并将结果添加到o

c# - 如何在 Parallel.For 中配置最大线程数

这是微软为并行for提供的示例,我想知道如何为这段代码配置最大线程数。//Abasicmatrixmultiplication.//Parallelizetheouterlooptopartitionthesourcearraybyrows.System.Threading.Tasks.Parallel.For(0,matARows,i=>{for(intj=0;j 最佳答案 您需要指定一个ParallelOptions具有MaxDegreeOfParallelism的值:例如:Parallel.For(0,10,newParall

c# - Parallel.Foreach + yield 返回?

我想像这样使用并行循环处理一些东西:publicvoidFillLogs(IEnumerablecomputers){Parallel.ForEach(computers,cpt=>{cpt.Logs=cpt.GetRawLogs().ToList();});}好的,它工作正常。但是,如果我希望FillLogs方法返回一个IEnumerable怎么办?publicIEnumerableFillLogs(IEnumerablecomputers){Parallel.ForEach(computers,cpt=>{cpt.Logs=cpt.GetRawLogs().ToList();yie

c# - 无法加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions,版本 = 1.1.0.0

更新到新包Microsoft.EntityFrameworkCore.SqlServer1.1.2后,我在尝试创建DBContext时遇到错误:System.IO.FileLoadExceptionoccurredHResult=0x80131040Message=Couldnotloadfileorassembly'Microsoft.Extensions.DependencyInjection.Abstractions,Version=1.1.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60'oroneofitsdependen

c# - "SqlConnection does not support parallel transactions"什么时候发生?

我有很多相当有效的代码已经在这里好几个月了,今天我看到记录了以下异常:System.InvalidOperationExceptionSqlConnectiondoesnotsupportparalleltransactions.atSystem.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLeveliso,StringtransactionName)atSystem.Data.SqlClient.SqlConnection.BeginTransaction(IsolationLeveliso,St

c# - Task.WaitAll 方法与 Parallel.Invoke 方法

我有示例代码来比较并行方法和任务方法的处理时间。本实验的目的是了解它们的工作原理。所以我的问题是:为什么Parallel比Task工作得更快?我的结果是否意味着我应该使用Parallel而不是Task?我应该在哪里使用Task和Parallel?与并行相比,使用任务有什么好处?Task是否只是ThreadPool.QueueUserWorkItem方法的包装?publicTaskSomeLongOperation(){returnTask.Delay(3000);}staticvoidMain(string[]args){Programp=newProgram();Listtasks=

c# - FileInfo.Extension 是否返回最后一个 *.* 模式或其他内容?

我很好奇下面的行为到底是什么:FileInfoinfo=newFileInfo("C:/testfile.txt.gz");stringext=info.Extension;这会返回“.txt.gz”还是“.gz”?更多扩展名的行为是什么,例如“.txt.gz.zip”或类似的东西?编辑:明确地说,我已经对此进行了测试。我想要一份关于属性(property)的解释。 最佳答案 它将返回.gz,但MSDN(FileSystemInfo.ExtensionProperty)的解释并不清楚原因:“Extension属性返回FileSyst

c# - 是什么导致这里出现 "extension methods cannot be dynamically dispatched"?

编译错误'System.Data.SqlClient.SqlConnection'hasnoapplicablemethodnamed'Query'butappearstohaveanextensionmethodbythatname.Extensionmethodscannotbedynamicallydispatched.Considercastingthedynamicargumentsorcallingtheextensionmethodwithouttheextensionmethodsyntax.现在,我知道如何解决该问题,但我正试图更好地了解错误本身。我有正在构建的类来利

c# - 在 excel 2007 中打开时,Excel 电子表格生成结果为 "different file format than extension error"

电子表格仍然显示,但带有警告消息。出现此问题似乎是因为Excel2007比早期版本的Excel更挑剔与其扩展名匹配的格式。该问题最初是由ASP.Net程序发现的,并在Excel中产生错误“您尝试打开的文件“Spreadsheet.aspx-18.xls”的格式与文件扩展名指定的格式不同.验证...”。但是,当我打开文件时,它显示得很好。我使用的是Excel2007。Firefox将文件识别为Excel97-2003工作表。这是一个产生问题的ASP.NET页面:文件背后的代码如下:publicpartialclassSpreadsheet:System.Web.UI.Page{prote