【发布时间】:2011-05-13 03:14:52
【问题描述】:
我目前正在编写应该是线程安全的代码。许多异步调用和事件以及通常需要大量工作来保持同步和线程安全的东西。
.NET 框架中是否有任何类可以处理这类事情,我可以查看(反编译)以了解事情应该如何完成?越复杂越好……
【问题讨论】:
-
只要有多个线程可以同时访问共享资源,就使用锁。
标签: c# .net multithreading events locking
我目前正在编写应该是线程安全的代码。许多异步调用和事件以及通常需要大量工作来保持同步和线程安全的东西。
.NET 框架中是否有任何类可以处理这类事情,我可以查看(反编译)以了解事情应该如何完成?越复杂越好……
【问题讨论】:
标签: c# .net multithreading events locking
.NET 4.0 Thread-Safe Collections
尽管针对 Windows 而不仅仅是 .NET,但 Joe Duffy 的书值得注意:Concurrent Programming on Windows
【讨论】:
MSDN 有一些关于 .NET 异步编程的好信息。查看Asynchronous Programming Design Patterns。
【讨论】:
有几种方法可以保持原子性。有一些类支持隔离,这样可以保证代码按特定顺序执行。您可以使用关键字 volatile 来确保变量访问是原子的(每次使用时从内存读取)并且您没有幻读。这些只是一些工具;我建议使用“atomic C#, F#..”的简单 Google
【讨论】: