gpt4 book ai didi

vb.net - 写入时同步锁定?读?或两者?

转载 作者:行者123 更新时间:2023-12-04 14:19:05 25 4
gpt4 key购买 nike

假设我有一个字节数组 Private Data as Byte() .这个数组在一个类中是私有(private)的。类提供读写Data的公共(public)函数。 .

这个类可以被多个线程访问,所以我想避免读取和写入不会同时发生的情况。

目前,我使用 SyncLock 来避免问题。可以放SyncLock Data仅在写入功能中,还是需要在读取功能中?或两者?

我没有具体的代码示例。我只是好奇,如果写入函数的 SyncLock 将使写入首先具有对它的独占访问权限,那么锁定读取和写入函数是否有任何好处。

最佳答案

您应该考虑使用 ReaderWriterLockSlim 而不是使用 SyncLock (或 ReaderWriterLock 如果您不在 .NET 4 中)。

它旨在允许单个作者,但多个读者。对于您所描述的情况,这通常是理想的。

否则,您可以使用 SyncLock,但您需要锁定读取和写入操作。如果没有两者的锁定,您的阅读器可能会在编写器仍在写入时读取数据 - 这将导致您读取半集数据。

关于vb.net - 写入时同步锁定?读?或两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com