thread-safety相关内容

急切地处置一个ManualResetEvent的

我有一个类,允许其他线程等待,直到它使用 ManualResetEventSlim 完成的操作。 (该操作通常是短暂的) 本类没有明确的寿命,所以我可以很容易地关闭事件没有任何一个地方。 相反,我想,因为它是完成与mdash一旦关闭事件,只要它发出信号,之后等待的线程醒来。 有关性能方面的原因,我想preFER不使用锁。 这是code线程安全的,可以将其进行得更快? 挥发性布尔isCom ..
发布时间:2015-11-26 21:45:47 C#/.NET

为什么微软这个样本code崩溃?

我想学习一些关于多线程在.NET和一把抓起的 MSDN 。它编译罚款,但崩溃在运行时。我希望微软会告诉我正确的方式来创建多个线程。我想不通为什么它会崩溃,但。有人可以帮忙吗? // Mutex.cs //互斥对象的实例 使用系统; 使用的System.Threading; 公共类MutexSample { 静态互斥GM1; 静态互斥GM2; const int的ITERS ..
发布时间:2015-11-26 21:45:09 C#/.NET

它是安全的,允许两个线程在同时编辑同一个对象的不同属性?

我写的,通过分析和从文件中提取信息并存储从一个对象实例的每个文件的信息编目应用程序。除了从文件中提取的数据中的对象也具有附加的元数据属性(作者,标签,注释,等等。),后来获取存储在一个单独的XML文件。 从提取的文件中的数据是一个耗时的过程,所以我把它在一个单独的线程中运行。从文件中提取的属性将只来自文件,因而有[只读]属性prevent的用户编辑它们。仅填充由用户在另一方面的元数据属性,因此不 ..
发布时间:2015-11-26 21:27:03 C#/.NET

是一个只读的HashSet天生线程?

如果我初始化的HashSet<> 在延迟初始化,然后永远不变的内容,是的HashSet<> 固有线程安全的?是否有阅读需要锁定的操作? 类似的Java问题解决方案 是的,确实如此。只要的HashSet 对象的构造是线程安全的,访问它永远是线程安全的,只要内容没有改变。 如果您初始化的懒使用 当多个线程试图初始化延迟< T>同时实例,所有线程都可以运行初始 ..
发布时间:2015-11-26 20:52:05 C#/.NET

使用相同的锁muliple方法

我还没有使用相同的锁多种方法至今的所有问题,但我想知道如果下面的code可能确实有问题,我不知道(性能): 私有静态只读对象lockObj =新的对象(); 公众诠释GetValue1(INT指数) { 锁定(lockObj) { //集1读和/或写 } } 公众诠释GetValue2(INT指数) { 锁定(lockObj) { ..
发布时间:2015-11-26 20:38:04 C#/.NET

WCF方法共享一本字典

我要创建一个WCF服务库和我有一个关于线程安全食用该库中的方法的问题,以下是完整的实现,我到现在为止。 命名空间WCFConfiguration { [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall,ConcurrencyMode = ConcurrencyMode.Single) 公共类Conf ..
发布时间:2015-11-26 19:21:00 C#/.NET

它是安全的存储在ASP.NET线程静态变量的ObjectContext的?

我读过,我应该存储的的ObjectContext 在 HttpContext.Current ,以分享我的的ObjectContext 跨越被称为一个请求不同的服务/资源库。我想知道,如果它是安全的使用的ObjectContext 上的 [ThreadStatic] 属性的静态类变量来代替。那是一个安全的事是什么?是每个请求处理在自己的线程? 解决方案 没有,也可以在同一个线程的多个请求,更重 ..
发布时间:2015-11-26 19:02:42 C#/.NET

忙等待与线程

基本上,我要忙等待某些HTML出现在网页上。我创建了以下code忙等我: 公共无效ExecuteBusyWaitThreads() { 的foreach(Canidate canidate在allCanidates) { 螺纹newThread =新主题(委托() { Bus ..
发布时间:2015-11-26 18:49:20 C#/.NET

难道这个例子线程安全的?

假设我有充当数据缓存单例类。多个线程会从缓存中读取,和一个单独的线程会定期刷新。它看起来是这样的: 公共密封类数据存储 { 公共静态数据存储实例{{返回_instance; }} 公共字典<富,酒吧和GT; FooBar的{获得;私定; } 静态数据存储(){} 私有数据存储(){} 公共无效刷新(){ FooBar的= GetF ..
发布时间:2015-11-26 18:47:14 C#/.NET

.NET线程喜欢的Node.js / V8?

我已经远离.NET桌面编程一段时间后,一边喝着Node.js的koolaid。有Node.js的一些地区,我觉得容易的工作。我特别喜欢的线程模型的简单性,并且我可以有几个多线程应用程序,而只写code的好处,跟踪单个线程的。 现在,我有必要写在.NET中的多线程应用程序,它发生,我认为没有理由我不能使用类似的线程用于建立的Node.js应用的模型。特别是,我想: 呼叫长时间运行的函数回调参数。 ..
发布时间:2015-11-26 18:25:31 C#/.NET

.NET ReaderWriterLockSlim问题

有很多写关于ReaderWriterLockSlim类,它允许多个读取和一个写入。所有这些(至少,我已经找到)告诉如何使用它没有太多的解释,为什么它是如何工作。标准code样品是: lock.EnterUpgradeableReadLock(); 尝试 { 如果(测试是否需要写) { lock.EnterWriteLock(); 尝试 { ..
发布时间:2015-11-26 18:16:41 C#/.NET

在Silverlight应用程序无效的跨线程访问

我使用的吊床框架,使得从Silverlight应用程序以REST服务asyncronous服务电话。在“完成'回调我更新绑定到视图中的一个组合框一个ObservableCollection。 这是“无效的跨线程访问”异常被抛出在“OnPropertyChanged”事件处理程序。 难道这becasue吊床不执行的UI线程上的回调?如果不是,为什么不呢?这似乎是功能,该框架应处理。我失去了一些东 ..
发布时间:2015-11-26 18:10:31 C#/.NET

制作与QUOT;修改 - 而-枚举"采集线程安全

我想创建一个可以同时列举修改的线程安全的集合。 样品 ActionSet 类存储动作处理程序。它具有添加方法,增加了一个新的处理程序列表和调用方法,列举并调用所有的收集到的动作处理程序。预期的工作方案包括非常频繁枚举偶尔修改,同时列举。 普通收藏抛出异常,如果您使用添加方法,而枚举还没有结束对其进行修改。 有一个简单的,但速度缓慢问题的解决方法:只要克隆收集统计前: 类ThreadSafe ..
发布时间:2015-11-26 17:22:26 C#/.NET

我如何才能确保只有一个线程会做什么?

我有一个项目添加到一个无锁队列多个线程。 的项目,然后由另外一个线程处理。 在生产者线程,我要揭开序幕消费者线程,的但只有当它尚未运行或拉开帷幕的。 具体做法是: 公共无效的BeginInvoke(操作方法) { //这个运行在多个后台线程 pendingActions.Enqueue(法); 如果(ProcessQueue尚未发布) uiConte ..
发布时间:2015-11-26 16:53:26 C#/.NET

是空合并运算符(?)在C#中的线程安全的吗?

有以下code的竞争条件,可能导致的NullReferenceException ? - 或 - 是否有可能为回调变量被设置为空的空合并运算符检查后,空值,但该函数被调用之前? MyClass类{ 公益行动回调{获得;组; } 公共无效DoCallback(){ (回拨??新的行动(()=> {}))(); } } 修改 这是一 ..

监卸经过多次Threading.Timers

我有一个过程,它创建计时器(System.Threading.Timer)的动态列表,并继续运行,直到接收到信号终止。一旦接收到信号以终止我想任何现有的计时器回调来完成(见下文): 私人的IList<定时器> _timers =新的名单,其中,定时器和GT;(); ... ... 私人无效WaitOnExecutingThreads() { VAR服务员=新的名单,其中,Manu ..
发布时间:2015-11-26 16:19:05 C#/.NET