concurrency相关内容

Visual Studio 2008支持新的.NET 4

我们对System.Collections.Concurrent命名空间和并行命名空间特别感兴趣,因为Visual Studio 2008将被新的.NET 4支持。 任务库,我会立即使用。 是否值得升级到Visual Studio 2010时出现? 解决方案 否。 VS2008将无法针对.NET 4.0: Visual Studio 2010支持.NET 4和 早期项目 ..
发布时间:2016-10-11 10:41:18 C#

如他们响应完成对异步SQL调用

背景: 我有查询的批量历史结果分贝的服务。 中的批次基于开始时间和结束时间。所有批次之间的数据是相互排斥的,所以对于给定批次的,它们可以以任何顺序执行。部分批次可能需要更多的时间比其他人来执行。如果有任何批次失败,则整个过程被中止/停止并记录错误。当数据返回给客户端,需要从所有批次的数据进行组合。 问题: 返回数据给客户端尽可能快 初始解决方案: 起初,我正在执行批 ..
发布时间:2016-10-10 18:58:24 C#/.NET

如何让我在后台运行的非必要的计算?

这个问题将在后续为什么这段代码同步运行?。我意识到,我的真正的问题是一个比在该职位上一个台阶。下面的问题我现在问,是“我怎么做到这一点?” 我想用并发在C#来计算在后台的东西。我有类ptsTin,它代表一个现有的地面。我想使装载尽可能快。有些工作是必要的,直到工作完成后,你没有一个实例。例如,没有ptsTin实例直到.LoadPoints()和.LoadTriangles都是完整 的 ..
发布时间:2016-10-05 22:13:06 C#/.NET

限制并发线程等于处理器的数量?

是否有对限制并发线程的数量做一个给定的任务为等于主机系统上的处理器的数量的任何好处?或者更好地单纯的信任库,如.NET的线程池做正确的事情......即使有25个不同的并发线程在任何一个特定的时刻发生了什么? 解决方案 大多数线程不CPU限制,他们最终等待IO或其他事件。如果你现在在你的系统中的样子,我想你有100的(如果不是1000年)的线程,没有任何问题执行。通过这一措施,你可能只是最 ..
发布时间:2016-10-04 23:25:19 C#/.NET

C#并发性,锁定和字典对象

我有一堆被加载到数据库对象数据库实体。相同的DB实体可以被装载到比DB中的对象更多。一个定期DB实体需要特殊处理。必须由一个线程时间执行该处理。锁定是为了在这里。 编辑:重要提示:进程调用一个缓慢的Web服务。这就是我想要防止并发。我不知道如何可以安全地完成W / O型锁。 所以我创建将由数据库对象锁定引用一个“挂锁”对象。挂锁基于对象的,使得对于相同的实体的两个或更多数据库对象将使用 ..
发布时间:2016-10-04 16:39:39 C#/.NET

我如何获得实体框架5更新陈旧的数据

我有一个EF5 WPF / MVVM解决方案,它的工作没有问题。该项目是一个订单输入系统,但是这样的背景下被用于跟踪所有的更改,然后保存它关闭加载顺序加载大量的相关项目,所以上下文长寿命。如果用户A加载命令并没有用它做任何事情,然后该订单用户B加载和更新它,我有一个是为了让用户A更新陈旧数据的刷新按钮。不幸的是,我似乎无法得到EF5忽略缓存。我原本以为这会工作: _trackingCont ..
发布时间:2016-10-01 20:45:19 C#/.NET

Windows服务+ Windows窗体应用程序。一个数据库。对并发建议

我有信息,SQL Server数据库的文件 - 我说的是自定义属性。这些是每个文件的类别和描述。 Windows窗体应用程序的用户。但我也会让一个Windows服务,将跟踪的文件进行任何更改。如果发生变更(重命名,移动,删除)服务有相应更新同一个数据库。而且我认为它应该做的马上,没有任何延迟。 现在这将是我第一次拍WS加上我第一次将不得不处理并发(理论上我知道线程等) 所以: ..
发布时间:2016-10-01 19:16:49 C#/.NET

在与StreamReader的并发文件访问的情况下引发的异常

我发现了一个后谈论处理并发文件访问与StreamWriter的。 现在的问题是,答案不管理该文件被访问,但多进程的场景。 让我们告诉它不久: 我有多个应用程序 我需要一个集中的日志系统数据库 如果数据库失败了,我需要一个文件系统日志后备 有是一个已知的并发情况下,多个应用程序(进程)将尝试在该文件中写入。 这可以通过重新尝试一个短暂的延迟后的写入进行管理。 ,而我不 ..
发布时间:2016-10-01 01:23:19 C#/.NET

佐贺数据nservicebus并发访问

我使用NServiceBus为企业服务总线,在解决方案中我发展我有所有客户端应用程序接收多达10K消息的业务流程服务。我想提高性能架构,从而提升解决方案提供。 我使用的是佐贺数据类,我想与大家分享所有工作线程之间的访问它(到现在我仅有一个线程,但我想设置至少到10),当多个线程试图访问同一传奇istance会发生什么?是否已经NSB提供这样的并发功能?我一定要实现它在我自己的?如果后者的任何 ..
发布时间:2016-10-01 00:46:58 C#/.NET

如果2个或更多的人在更新的确切同时记录会发生什么?

我使用NHibernate的版本属性,每一个我聚合根更新时自动递增。如果2个或更多的人更新在完全相同的时间相同的记录,会发生什么? 另外,我会怎么测试呢? 请注意,这不是我一直在,只是想知道的情况。 解决方案 什么是原子, ,什么不是 由于其他人指出,在SQL Server的更新是原子操作。然而,与NHibernate(或任何O / RM)更新数据时,通常第一个选择中的数 ..
发布时间:2016-09-30 23:02:08 C#/.NET

应挥发,只读相互排斥?

假设我在设计一个线程安全类包装的内部集合: 公共类ThreadSafeQueue< T> { 私人只读队列< T> _queue =新队列< T>(); 公共无效排队(T项目) { 锁(_queue) { _queue.Enqueue(项目); } } // ... } 根据我的其他问题,上面的实现是越野车, ..
发布时间:2016-09-30 22:35:12 C#/.NET

实现一个无锁队列(对于记录器组件)

我设计一个新的改进记录器组件(.NET 3.5,C#)。 我想用一个无锁的实现。 记录的事件将(可能)多线程发送,虽然只有一个的单的线程会做实际输出到文件/其它存储介质。 在本质上,所有的作家是*入队*的数据转换成一些队列,要通过一些其他进程(LogFileWriter)检索。 这能在锁定少的方式实现?我找不到一个直接引用在网络这个特定的问题。 解决方案 如果你发现 ..
发布时间:2016-09-28 14:52:20 C#/.NET

db4o的客户机/服务器似乎只能同时处理一个查询?

我们正在(从 http://www.db4o.com 一个OO-DBMS)评估db4o的。我们已经组建了一个性能测试客户端/服务器模式,我们旋转了一个服务器,然后在曾经与几个客户锤吧。这似乎是服务器只能处理一个客户的一次查询。 我们已经错过某处配置开关,允许这种情况?服务器实现如下。客户端连接,查询(只读),和断开每个操作和操作从客户端过程中的几个工作线程对方后立即运行之一。我们看到同样的行 ..
发布时间:2016-09-26 21:42:07 C#/.NET

SELECT和UPDATE表,所以没有线程的重叠

说我有如下表: ID |阅读 ------- 1 |真 2 |虚假 3 |虚假 4 |虚假 ...我需要阅读的最小ID,已[阅读] ==虚假; 。再加上,更新了我现在读 所以,如果我执行我的存储过程dbo.getMinID,它将返回ID:2,和更新[阅读] - >真实的。 CREATE PROCEDURE [DBO]。[getMinID] ..
发布时间:2016-09-26 13:08:38 C#/.NET

如何创建自定义消息泵?

我做一个小的锻炼,我需要建立一个类似于一个消息泵。我已经是一个工作队列做的,我想工作,完全在一个线程来完成,而任何线程可以增加工作队列工作要做。 问答LT; WorkToDo>队列; 该线程使用等待句柄来告诉泵,有工作要做。 WaitHandle的信号; 泵只是循环只要有工作要做,然后等待信号再次开始 而(ApplicationIs ..
发布时间:2016-09-26 13:06:47 C#/.NET

LINQ的缓存数据值 - 大并发的问题?

下面是一个小实验我所做的: MyClass的OBJ = dataContext.GetTable< MyClass的>(),其中(X = > x.ID = 1)。单(); Console.WriteLine(obj.MyProperty); //输出=“初始” Console.WriteLine(“等待...”); //将断点此行 OBJ =空后; 物镜= da ..
发布时间:2016-09-26 11:51:19 C#/.NET

多线程将元素添加到一个列表。为什么有始终是列表中较少的项目比预期?

下面的代码说明我的问题。 我知道名单是不是线程安全的。但是,什么是潜在的“真实”的原因呢? 类节目 { 静态无效的主要(字串[] args) { 名单,LT;字符串> strCol =新的List<串GT;(); 的for(int i = 0;我小于10;我++) { INT ID = I; Task.Factory.StartNew(()=> { ..