concurrency相关内容
我在C#写了一个多用户应用程序中使用SQL Server 2005 Express的作为后端一段时间的年龄。 我有一个订单的集合。为了使用这个类,你需要实例化它,只是调用Load(CustomerCode),以填充指定customers`s订单采集方法。 我的问题: 我如何强制执行并发性,所以,只有1用户可以请求订单收集特定客户?当用户与对象(当对象设置为null), 做我将需
..
我在寻找在C#或至少是一个集得到一个并发收集的方式,支持并行枚举。现在,我得到一个InvalidOperationException集合时在其上我迭代变化。我可以只复制深收集并配有私人拷贝工作,但我不知道是否有可能是一个更好的办法 代码段: 的foreach(字符串S IN(列表<串GT;)callingForm.Invoke(callingForm.delegateGetKil
..
我在一个相当大的应用程序,我在工作中破解调试上一个明显的并发问题。有问题的错误只体现在某些性能较低的机器对于很多(12+)小时后运行,我从来没有在调试器中复制它。正因为如此,我的调试工具基本上局限于分析日志文件。 C#可以很容易地获得线程的堆栈跟踪抛出异常,但我喜欢另外获得所有其他线程当前在我的AppDomain在异常被抛出时执行的堆栈跟踪。 这可能吗? 解决方案 有是Code
..
我怎样才能重新写代码,当两个transformblocks完成了代码完成?我认为完成意味着它标记为完成和“走出队列”是空的? 公开测试() { broadCastBlock =新BroadcastBlock< INT>(I => { 回报我; }); transformBlock1 =新TransformBlock< INT,串>(I =>
..
我想是没有用Java任务并行库(.NET程序4.0)的等价物。真的吗?什么是.NET提供的这个功能,Java并发没有。 解决方案 Java有的 的java.util.concurrent 包,另外还有叉/ join框架。叉/加入计划纳入 Java 7中,但可以的
..
我是在c#新手。我需要2方法来获取锁,但是在一个方法释放。 ?请问这项工作。 公共无效obtainLock(){ Monitor.Enter(lockObj); } 公共无效obtainReleaseLock(){ 锁(lockObj){ doStuff } } 特别是我可以叫 obtainLock 然后 obtainReleaseLock ?是“DOUBL
..
我有一种被称为在具有开放式数据库连接快速连续的功能。 我的问题是,有一个数据库连接被关闭之前,该功能的另一个实例调用,我可能得到的数据库死锁。 我有尝试: 私有静态的WaitHandle [] waitHandles =新的WaitHandle [] { 新的AutoResetEvent(假) }; 保护覆盖无效广播(数据资料,串updatedBy) { 行动newAct
..
目前,我正在试图总结我的周围RX .NET并发头被什么东西感到困惑。我想运行四个并行的比较慢的任务,所以我估计 NewThreadScheduler.Default 将要走的路,因为它的“代表一个对象,日程表每个单元。在一个单独的线程作品“的 下面是我的设置代码: 静态无效测试() { Console.WriteLine(“启动线程{0}”,Thread.CurrentThread
..
我有一个绑定到一个集合的WPF的ListView(列表< T> )。这是目前从当前线程它工作正常更新。 我想移动的逻辑更新列表到一个线程,我看到有关线程安全和一些潜在的问题列表的约束力。我大可放心,除非我叫绑定,将不会更新 NotifyPropertyChanged ?为 NotifyPropertyChanged 阻塞调用还是只是将它添加到消息队列;在这种情况下肯定有可能是这样
..
我要创建使用数据库表中的一些分布式互斥。这将是很好,有一个存储过程如下界面: 等待(唯一标识符) 我是原本想依靠其独特的标识符的表实现这一点。该过程的调用会等到的唯一标识符不存在于表中。不过,我不知道我怎么会让调用线程醒来时指定的唯一标识符从表中删除。 任何想法?如果数据库是不这样做的正确的地方,是否有任何第三方工具,将工作(最好是开源的)? (为了避免死锁,我不是想包括在
..
今天我异形使用Visual Studio 2010的性能分析器我的C#应用程序之一。具体来说,我分析了“并发”,因为它仿佛我的应用程序应该有更多的能力然后将其展示。分析报告显示,线程是在一个同步化状态花费〜的时间70%-80%。 说实话,我不知道这意味着什么。这是否意味着应用程序从一个活锁状态的痛苦? 有关背景...有〜30 +长期运行的绑定到一个单一的AppDomain线程(的如
..
假设我正在写一个很长的字符串使用File.WriteAllText一个文件,而另一个线程或进程正在尝试读取相同的文件。难道抛出任何异常?换句话说,什么是文件共享参数的File.WriteAllText方法使用?这不是写在文件中! 解决方案 这是源代码的.NET Framework 4.0。明确的StreamWriter是用来使用FileShare.Read内部。 [Security
..
如何写入可以由多种来源(可能在并行方式)访问的文本文件,确保没有写操作丢失 像,如果两种不同的方法在同一时刻将文件写入,这可能导致问题。该simples溶液(不是非常快,不是很优雅)将锁定的文件,同时开始处理(创建一个.lock文件或类似),并释放它(删除锁),而写入完成。 在开始写,我想如果.lock检查文件是否存在,延缓写入到文件被释放。 什么是推荐的模式来遵循这种情况?
..
.NET 4.0引入了 System.Collections中。并发命名空间: “的的 System.Collections.Concurrent 命名空间提供了应在的地方$ b中使用几种 线程安全的集合类$ b相应类型的 System.Collections中和 的
..
我创建了一个类,其目的是抽象掉的一个队列的并发访问控制。 的 类被设计在单个线程中实例化通过多线程写入,然后从随后的单个线程读取。 我有阶级内部产生一个长期运行的任务将执行阻塞循环并触发一个。事件如果项目成功出列 我的问题是:是我执行长时间运行的任务,随后清理/重置正确用法 CancellationTokenSource 对象? 在理想情况下,我想一个活动对象才能够被停止
..
你有什么建议如何测试一个多线程应用程序 我知道,线程错误是很难抓到他们可能随时会发生 - 或者根本不所有。测试是困难的,结果永远是肯定的。当然,最好是精心设计和并行模块编程 尽管如此 - 我不想离开了测试方面。所以,跑了很多线程都工作在同一个项目可以调用线程错误,有时的。 任何想法或最佳实践,让自己的隐藏线程的高命中率错误? (我使用的.Net / C#) 解决方案
..
我感到困惑邮通()或SendAsync()发送项目之间的差异。我的理解是,在所有情况下,一旦项目达成一个数据块的输入缓冲器,控制返回到调用上下文,正确吗?那么,为什么我会永远需要SendAsync?如果我的假设是不正确,我在想,相反,为什么会有人曾经使用后()如果使用的数据块的整体思路是建立一个并行异步和环境。 据我了解,而SendAsync返回布尔的awaitable任务当然技术上在该职位
..
UPD 我认为现在我的问题是根本没有“线程”,因为我在节目中的任何一点放缓观察。我想以某种方式使用2处理器我的程序执行速度较慢,可能是因为两个处理器需要彼此之间进行“交流”的时候。我需要做一些测试。我会尝试禁用处理器之一,看看会发生什么。 ===================== =============== 我不知道这是C#的问题,可能更有关硬件,但我认为C#将是最合适的。
..
任何人都可以创建一个短采样打破,除非 [ReliabilityContract(Consistency.WillNotCorruptState,Cer.Success)] 应用? 我只是通过MSDN这个样品跑,但无法得到它打破,即使我注释掉ReliabilityContract属性。最后似乎总被调用。 解决方案 使用系统;使用System.Runtime.CompilerServic
..
是否有.NET / C#任何好的执行演员并发模型的? 我要优化一个C#程序,我认为这角色模型非常适合作为我的问题的解决方案。不幸的是我只用Scala实现经验 解决方案 您应该看一看MS的Asynchronous代理库,让你所有你需要的功能。 在有并行相关的功能很好看的.NET 4。 希望它帮助!
..