草庐IT

concurrent-collections

全部标签

c# - 将语句与泛型一起使用 : using ISet<> = System. Collections.Generic.ISet<>

因为我使用了两个不同的通用集合命名空间(System.Collections.Generic和Iesi.Collections.Generic),所以我有冲突。在项目的其他部分,我同时使用nunit和mstest框架,但是当我调用Assert时,我想通过使用nunit版本usingAssert=NUnit.Framework.Assert;效果很好,但我想对泛型类型做同样的事情。但是,以下几行不起作用usingISet=System.Collections.Generic.ISet;usingISet=System.Collections.Generic.ISet;有谁知道如何告诉.n

c# - GC.Collect() 和完成

好的,众所周知,当GC将对象识别为垃圾时,它会隐式调用对象上的Finalize方法。但是如果我执行GC.Collect()会发生什么?finalizer是否仍然执行?有人问我这个问题,我回答"is",然后我想:“完全正确吗?” 最佳答案 Ok,it'sknownthatGCimplicitlycallsFinalizemethodsonobjectswhenitidentifiesthatobjectasgarbage.不不不。这不是已知,因为要成为知识,一个陈述必须是真。该声明是错误的。垃圾收集器在跟踪时不会运行终结器,无论它是自

c# - linq 问题 : querying nested collections

我有一个Question类,它具有可以包含多个Answers的公共(public)List属性。我有一个问题存储库,负责从xml文件中读取问题及其答案。所以我有一个问题集合(列表),每个问题对象都有一个答案集合,我想通过使用Linq查询这个问题集合的答案(即通过它的名称)。我不知道如何正确执行此操作。我可以用foreach来完成,但我想知道是否有纯Linq方式,因为我正在学习它。 最佳答案 寻找答案。questions.SelectMany(q=>q.Answers).Where(a=>a.Name=="SomeName")找到问题

c# - 从 Collection 到 List<T> 的最快转换

我想避免的事情:ManagementClassm=newManagementClass("Win32_LogicalDisk");ManagementObjectCollectionmanagementObjects=m.GetInstances();ListmanagementList=newList();foreach(ManagementObjectminmanagementObjects){managementList.Add(m);}有没有办法将该集合放入类似于以下内容的列表中:ListmanagementList=newList(collection_array);

c# - System.Collections.Generic.IEnumerable' 不包含 'ToList' 的任何定义

问题来了。我正在从ViewPage获取IEnumerable,当我尝试将其转换为List时,它显示如下错误:'System.Collections.Generic.IEnumerable'doesnotcontainadefinitionfor'ToList'andnoextensionmethod'ToList'acceptingafirstargumentoftype'System.Collections.Generic.IEnumerable'couldbefound(areyoumissingausingdirectiveoranassemblyreference?)这是我的C

c# - 什么时候可以调用 GC.Collect?

一般的建议是您不应从您的代码中调用GC.Collect,但这条规则有哪些异常(exception)情况?我只能想到一些非常具体的情况,在这些情况下强制进行垃圾收集可能是有意义的。我想到的一个例子是服务,它每隔一段时间醒来,执行一些任务,然后长时间休眠。在这种情况下,强制收集以防止即将空闲的进程占用比需要更多的内存可能是个好主意。是否还有其他情况可以调用GC.Collect? 最佳答案 如果您有充分的理由相信一组重要的对象——尤其是那些您怀疑在第1代和第2代中的对象——现在有资格进行垃圾收集,并且现在是收集垃圾的合适时机性能影响小。一

c# - "The Controls collection cannot be modified because the control contains code blocks"

我正在尝试创建一个简单的用户控件,它是一个slider。当我将AjaxToolkitSliderExtender添加到用户控件时,我得到这个(*&$#()@#error:ServerErrorin'/'Application.TheControlscollectioncannotbemodifiedbecausethecontrolcontainscodeblocks(i.e.``).Description:Anunhandledexceptionoccurredduringtheexecutionofthecurrentwebrequest.Pleasereviewthestackt

concurrency - 与 google go 中的 channel 共享资源

我正在查看GoogleGo语言,因为我正在构建一个实时系统,我发现通过channel共享资源有点困惑。为了便于理解,我正在尝试让不同的goroutines以相同的次数递增和递减共享值,最终为0。我知道我的代码是错误的,但我我并没有真正掌握它的窍门。有人愿意解释这里出了什么问题吗?packagemainimport(."fmt"."runtime")funcincrement(cchanint){forx:=0;x我可以使用类似于使用C或Python的互斥锁或信号量,尽管我想利用Go中的channel。**UPDATE添加WaitGroup会改变程序流程吗?我添加了一个WaitGroup

concurrency - Go 中互斥锁的问题

除了互斥量之外,一切都很好。在我锁定和解锁后,它不会做任何事情。有什么明显的我想念的吗?最重要的是,解锁后,我想在这个函数中运行一个函数。我试过将其作为常规函数调用(timer())甚至(gotimer())。funcshield(state*State){fors:=rangestate.ToggleShield{//runifdataonchannelifs==true{//ifdataonchannelistruefmt.Println("OpeningtheshieldsThisisuninteruptable.Pleasewait...")state.VariableMute

concurrency - Goroutine 和 for 循环

我想做的就是向channel发送一个值,然后从main()函数返回,并在从channelch.但这会一直运行下Go:ch:=make(chanint)for{gofunc(){ch从channel接收到一个值后,如何使用此for循环返回?为什么它会永远运行?Goplayground链接在这里http://play.golang.org/p/EvmT6Pw96Y 最佳答案 因为for循环永远运行,你的代码永远运行。从未到达for循环后从ch接收。如果你想让你的代码在某个时候退出,你必须在某个时候结束for循环,例如让它只运行一定数量的