concurrency相关内容

C#数据库应用并发

我在C#写了一个多用户应用程序中使用SQL Server 2005 Express的作为后端一段时间的年龄。 我有一个订单的集合。为了使用这个类,你需要实例化它,只是调用Load(CustomerCode),以填充指定customers`s订单采集方法。 我的问题: 我如何强制执行并发性,所以,只有1用户可以请求订单收集特定客户?当用户与对象(当对象设置为null), 做我将需 ..
发布时间:2016-09-23 23:41:35 C#/.NET

在C#并发集合

我在寻找在C#或至少是一个集得到一个并发收集的方式,支持并行枚举。现在,我得到一个InvalidOperationException集合时在其上我迭代变化。我可以只复制深收集并配有私人拷贝工作,但我不知道是否有可能是一个更好的办法 代码段: 的foreach(字符串S IN(列表<串GT;)callingForm.Invoke(callingForm.delegateGetKil ..
发布时间:2016-09-23 23:41:10 C#/.NET

我能得到所有线程的堆栈跟踪我的C#应用​​程序?

我在一个相当大的应用程序,我在工作中破解调试上一个明显的并发问题。有问题的错误只体现在某些性能较低的机器对于很多(12+)小时后运行,我从来没有在调试器中复制它。正因为如此,我的调试工具基本上局限于分析日志文件。 C#可以很容易地获得线程的堆栈跟踪抛出异常,但我喜欢另外获得所有其他线程当前在我的AppDomain在异常被抛出时执行的堆栈跟踪。 这可能吗? 解决方案 有是Code ..
发布时间:2016-09-23 21:36:35 C#/.NET

如何获取锁在两个地方,但释放一个地方?

我是在c#新手。我需要2方法来获取锁,但是在一个方法释放。 ?请问这项工作。 公共无效obtainLock(){ Monitor.Enter(lockObj); } 公共无效obtainReleaseLock(){ 锁(lockObj){ doStuff } } 特别是我可以叫 obtainLock 然后 obtainReleaseLock ?是“DOUBL ..
发布时间:2016-09-20 23:21:37 C#/.NET

如何等待一个线程在C#中完成执行?

我有一种被称为在具有开放式数据库连接快速连续的功能。 我的问题是,有一个数据库连接被关闭之前,该功能的另一个实例调用,我可能得到的数据库死锁。 我有尝试: 私有静态的WaitHandle [] waitHandles =新的WaitHandle [] { 新的AutoResetEvent(假) }; 保护覆盖无效广播(数据资料,串updatedBy) { 行动newAct ..
发布时间:2016-09-20 23:14:57 C#/.NET

NewThreadScheduler.Default时间表上的同一主题的所有工作

目前,我正在试图总结我的周围RX .NET并发头被什么东西感到困惑。我想运行四个并行的比较慢的任务,所以我估计 NewThreadScheduler.Default 将要走的路,因为它的“代表一个对象,日程表每个单元。在一个单独的线程作品“的 下面是我的设置代码: 静态无效测试() { Console.WriteLine(“启动线程{0}”,Thread.CurrentThread ..
发布时间:2016-09-20 20:57:04 C#/.NET

线程安全,列表,绑定和WPF

我有一个绑定到一个集合的WPF的ListView(列表< T> )。这是目前从当前线程它工作正常更新。 我想移动的逻辑更新列表到一个线程,我看到有关线程安全和一些潜在的问题列表的约束力。我大可放心,除非我叫绑定,将不会更新 NotifyPropertyChanged ?为 NotifyPropertyChanged 阻塞调用还是只是将它添加到消息队列;在这种情况下肯定有可能是这样 ..
发布时间:2016-09-20 10:18:41 C#/.NET

互斥存储过程

我要创建使用数据库表中的一些分布式互斥。这将是很好,有一个存储过程如下界面: 等待(唯一标识符) 我是原本想依靠其独特的标识符的表实现这一点。该过程的调用会等到的唯一标识符不存在于表中。不过,我不知道我怎么会让调用线程醒来时指定的唯一标识符从表中删除。 任何想法?如果数据库是不这样做的正确的地方,是否有任何第三方工具,将工作(最好是开源的)? (为了避免死锁,我不是想包括在 ..
发布时间:2016-09-20 09:05:14 C#/.NET

是线程时间同步化过高度过?

今天我异形使用Visual Studio 2010的性能分析器我的C#应用​​程序之一。具体来说,我分析了“并发”,因为它仿佛我的应用程序应该有更多的能力然后将其展示。分析报告显示,线程是在一个同步化状态花费〜的时间70%-80%。 说实话,我不知道这意味着什么。这是否意味着应用程序从一个活锁状态的痛苦? 有关背景...有〜30 +长期运行的绑定到一个单一的AppDomain线程(的如 ..
发布时间:2016-09-19 14:13:35 C#/.NET

File.WriteAllText和并发访问

假设我正在写一个很长的字符串使用File.WriteAllText一个文件,而另一个线程或进程正在尝试读取相同的文件。难道抛出任何异常?换句话说,什么是文件共享参数的File.WriteAllText方法使用?这不是写在文件中! 解决方案 这是源代码的.NET Framework 4.0。明确的StreamWriter是用来使用FileShare.Read内部。 [Security ..
发布时间:2016-09-19 12:54:58 C#/.NET

并发文件写

如何写入可以由多种来源(可能在并行方式)访问的文本文件,确保没有写操作丢失 像,如果两种不同的方法在同一时刻将文件写入,这可能导致问题。该simples溶液(不是非常快,不是很优雅)将锁定的文件,同时开始处理(创建一个.lock文件或类似),并释放它(删除锁),而写入完成。 在开始写,我想如​​果.lock检查文件是否存在,延缓写入到文件被释放。 什么是推荐的模式来遵循这种情况? ..
发布时间:2016-09-19 11:17:45 C#/.NET

如何经过长期运行的任务被取消正确清理

我创建了一个类,其目的是抽象掉的一个队列的并发访问控制。 的 类被设计在单个线程中实例化通过多线程写入,然后从随后的单个线程读取。 我有阶级内部产生一个长期运行的任务将执行阻塞循环并触发一个。事件如果项目成功出列 我的问题是:是我执行长时间运行的任务,随后清理/重置正确用法 CancellationTokenSource 对象? 在理想情况下,我想一个活动对象才能够被停止 ..
发布时间:2016-09-18 12:24:37 C#/.NET

如何测试线程安全

你有什么建议如何测试一个多线程应用程序 我知道,线程错误是很难抓到他们可能随时会发生 - 或者根本不所有。测试是困难的,结果永远是肯定的。当然,最好是精心设计和并行模块编程 尽管如此 - 我不想离开了测试方面。所以,跑了很多线程都工作在同一个项目可以调用线程错误,有时的。 任何想法或最佳实践,让自己的隐藏线程的高命中率错误? (我使用的.Net / C#) 解决方案 ..
发布时间:2016-09-18 11:36:51 C#/.NET

TPL数据流,什么帖子()和SendAsync()之间的功能区别?

我感到困惑邮通()或SendAsync()发送项目之间的差异。我的理解是,在所有情况下,一旦项目达成一个数据块的输入缓冲器,控制返回到调用上下文,正确吗?那么,为什么我会永远需要SendAsync?如果我的假设是不正确,我在想,相反,为什么会有人曾经使用后()如果使用的数据块的整体思路是建立一个并行异步和环境。 据我了解,而SendAsync返回布尔的awaitable任务当然技术上在该职位 ..

线程池的程序运行速度更快的服务器上慢得多

UPD 我认为现在我的问题是根本没有“线程”,因为我在节目中的任何一点放缓观察。我想以某种方式使用2处理器我的程序执行速度较慢,可能是因为两个处理器需要彼此之间进行“交流”的时候。我需要做一些测试。我会尝试禁用处理器之一,看看会发生什么。 ===================== =============== 我不知道这是C#的问题,可能更有关硬件,但我认为C#将是最合适的。 ..
发布时间:2016-09-08 19:32:16 C#/.NET

代码演示一个约束的执行区域的重要性

任何人都可以创建一个短采样打破,除非 [ReliabilityContract(Consistency.WillNotCorruptState,Cer.Success)] 应用? 我只是通过MSDN这个样品跑,但无法得到它打破,即使我注释掉ReliabilityContract属性。最后似乎总被调用。 解决方案 使用系统;使用System.Runtime.CompilerServic ..
发布时间:2016-09-07 13:14:33 C#/.NET

任何一个优秀的执行者为C#的?

是否有.NET / C#任何好的执行演员并发模型的? 我要优化一个C#程序,我认为这角色模型非常适合作为我的问题的解决方案。不幸的是我只用Scala实现经验 解决方案 您应该看一看MS的Asynchronous代理库,让你所有你需要的功能。 在有并行相关的功能很好看的.NET 4。 希望它帮助! ..
发布时间:2016-09-07 13:09:58 C#/.NET