草庐IT

collect_set

全部标签

c# - 在 EventHandler 中尝试 Set() 时,如何检查 ManualResetEvent 是否已被处置?

我有以下设计模式:varmyObjectWithEvents=newObjectWithEvents();using(varmre=newManualResetEvent(false)){varonEvent=newEventHandler((sender,e)=>{mre.Set();});try{myObjectWithEvents.OnEvent+=onEvent;vartask=Task.Factory.StartNew(()=>{myObjectWithEvents.DoSomethingThatShouldRaiseAnEvent();});vartimedOut=!mre

c# - 避免 InvalidOperationException : Collection was modified? 的最佳实践

我经常需要这样的东西:foreach(Linelineinlines){if(line.FullfilsCertainConditions()){lines.Remove(line)}}这不起作用,因为我总是得到一个InvalidOperationException,因为Enumerator在循环期间被更改了。所以我将所有此类循环更改为以下内容:Listremove=newList();foreach(Linelineinlines){if(line.FullfilsCertainConditions()){remove.Add(line)}}foreach(Linelineinrem

c# - 为什么我需要使用 get 和 set?

我有一段代码:publicclassMyClass{privatestring_myProperty;publicstringMyProperty{get{return_myProperty;}set{_myProperty=value;}}}这里有什么意义?我可以将_myProperty字符串声明为公共(public)字符串,我的任何类对象都可以直接访问它们并获取或设置值。相反,我们将_myProperty设为私有(private),并使用类对象使用get和set来访问它们。在任何一种情况下,类对象都能够访问它们并且结果总是相同的。那么为什么要使用这种方法呢?这仅仅是因为我可以在se

c# - EF 查询 Oracle 抛出 "ORA-12704: character set mismatch"

我试图在Oracle的EF中组合几列,然后像这样对这些列执行.Contains():publicIEnumerableSearchUsers(stringsearch){search=search.ToLower();return_securityUow.Users.Where(u=>(u.FirstName.ToLower()+""+u.LastName.ToLower()+"("+u.NetId.ToLower()+")").Contains(search)).OrderBy(u=>u.LastName).ThenBy(u=>u.FirstName).AsEnumerable();

c# - "Cannot insert explicit value for identity column in table when IDENTITY_INSERT is set to OFF"带复合键

我们最近向我们的数据库添加了一个新的“级别”——在整个数据库中的表中现有ID身份字段的上方/之前添加了一个键“Company_ID”。例如,如果一个表有ID然后是字段,它现在有Company_ID,然后是ID,然后是字段。这个想法是,这允许ID为提供给功能的每个不同的Company_ID值自动递增(Company_ID1可以有ID1、2、3等;Company_ID2可以有ID1、2、3等)。自增字段保持为ID。一个示例表是:[dbo].[Project]([Company_ID][int]NOTNULL,[ID][int]IDENTITY(1,1)NOTNULL,[DescShort]

c# - "Collection was of a fixed size"带有 POCO 的 EF4 异常

我将EF4与WCF和POCO结合使用。我删除了POCO实体中的所有虚拟关键字。我有Employee和Team实体,两者之间的关系是1:N,意味着一名员工只能分配到一个团队。我想在现有团队中添加新员工。以下代码在客户端。privatevoidbtnAdd_Click(objectsender,RoutedEventArgse){TeamteamFromDb=ServiceProxy.GetService.GetTeamById(181);EmployeenewEmp=newEmployee{UserName="username"};newEmp.Team=teamFromDb;Servi

c# - 隐式类型数组 : why we can't set array size explicitly?

C#语言规范(7.6.10.4)说,数组创建表达式有树种:newnon-array-type[expression-list]rank-specifiersoptarray-initializeroptnewarray-typearray-initializernewrank-specifierarray-initializer第三个用于隐式类型数组:varfoo=new[]{1,2,3};问题:在隐式类型数组的情况下,是否有任何重要的理由禁止显式设置数组大小?与这种语法相比,它看起来像是不对称行为:varfoo=newint[3]{1,2,3};更新。稍微澄清一下。我可以看到,显式设

c# - Visual Studio 显示 ReSharper 的 'Configure settings to improve performance' 通知

我正在使用VisualStudioProfessional201715.5.2和Resharper2017.3.1。每次我打开VS,它都会抛出通知Configuresettingstoimproveperformance.我尝试忽略此消息,但每次启动新实例时都会抛出它。当这不起作用时,我单击了消息,它带我进入了Resharper性能指南选项。我尝试更改正在使用的SourceControl插件的设置。。我将其值更改为忽略,但消息仍然存在。2Questions1.WhatisslowinginResharperforwhichVSthrowsthiserror?2.Whyisthisnot

c# - ManualResetEventSlim : Calling . Set() 后跟 .Reset() 不会释放 *任何* 等待线程

ManualResetEventSlim:调用.Set()后立即调用.Reset()不会释放任何等待线程(注意:ManualResetEvent也会发生这种情况,而不仅仅是ManualResetEventSlim。)我在发布和Debug模式下都尝试了下面的代码。我在四核处理器上运行的Windows764位上使用.Net4作为32位版本运行它。我从VisualStudio2012编译它(因此安装了.Net4.5)。在我的系统上运行它时的输出是:Waitingfor20threadstostartThread1started.Thread2started.Thread3started.Th

c# - DDD : entity's collection and repositories

假设我有publicclassProduct:Entity{publicIListItems{get;set;}}假设我想找到一个最大的项目...我可以添加方法Product.GetMaxItemSmth()并使用Linq(fromiinItemsselecti.smth).Max())或使用手动循环或其他方式。现在,问题是这会将整个集合加载到内存中。正确的解决方案是进行特定的数据库查询,但域实体无权访问存储库,对吧?所以要么我做productRepository.GetMaxItemSmth(product)(这很丑,不是吗?),或者即使实体可以访问存储库,我也使用来自实体的IPro