C#中线程同步有哪些方法

发布于 2024-11-07 07:25:01 字数 63 浏览 0 评论 0原文

除了使用 lock(object) 关键字之外,在某些情况下是否有任何根本不同或棘手或其他有用的方法来进行同步?

Apart from using lock(object) keyword, are there any fundamentally different or tricky or other useful in some situations ways to do syncronization ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

笨死的猪 2024-11-14 07:25:01

Windows.Threading 命名空间。

监视器Mutex 是两个重要的类命名空间内的同步(还有其他)。 Lock 是简单的Monitor 操作的语法糖。

Interlocked 提供了一些线程安全操作(递增递减等)。

我建议浏览 MSDN 文档以了解命名空间和其中的不同类。

There are many classes in the Windows.Threading namespace.

Monitor and Mutex being two important classes for synchronization within the namespace (there are others). Lock is syntactic sugar for simple Monitor operations.

Interlocked provides some thread safe operations (Increment, Decrement and more).

I suggest going through the MSDN documentation for the namespace and different classed in it.

情绪操控生活 2024-11-14 07:25:01

如果您需要向一个线程通知另一线程上的事件,则 ManualResetEventAutoResetEvent 允许您这样做。

如果您发现您的代码可以处理同时读取,但需要同步写入,并且您的读取比写入更频繁,那么 ReaderWriterLock (或现在 ReaderWriterLockSlim)将是有很大帮助。

MutexSemaphore 提供与 lock() 类似的功能,但可用于跨进程同步。

还有其他一些,但这些是我通常使用的三个主要其他。

If you need to notify one thread of an event on a different thread, then ManualResetEvent and AutoResetEvent allow you to do so.

If you find that your code can handle simultaneous reads but need to synchronize writes, and your reading occurs much more frequently than your writes, then ReaderWriterLock (or now ReaderWriterLockSlim) will be of much help.

Mutex and Semaphore provide similar functionality to lock(), but can be used to synchronize across processes.

There are some others, but those are the three main others I typically use.

合约呢 2024-11-14 07:25:01

这个问题很广泛。
有一些关于不同同步技术以及在哪种情况下使用哪些技术的书籍。
有很多不同的方法可以进行同步。

同步基元概述< /a>

.NET 4 中添加了相当多的新同步原语。 http: //msdn.microsoft.com/en-us/library/dd460718.aspx

The question is very broad.
There are books about different synchronization technics and which to use in which scenario.
There are a lot of different ways to do synchronization.

Overview of Synchronization Primitives

Quite a few of new synchronization primitives where added in .NET 4. http://msdn.microsoft.com/en-us/library/dd460718.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文