gpt4 book ai didi

c# - 这是 MCTS 自定进度培训套件(考试 70-536)中的错误吗?

转载 作者:太空狗 更新时间:2023-10-29 22:34:44 26 4
gpt4 key购买 nike

我正在阅读 MCTS 自定进度培训工具包(考试 70-536):Microsoft .NET Framework — 应用程序开发基础,第二版电子书。

现在我正在完成线程章节(第 7 期)。在第 2 课末尾的问题中,有一个问题 (nr. 2) 要求:“您正在编写一个可以由多个线程运行的方法。确保在任何线程正在读取时没有线程写入文件从文件中获取。但是对于同时读取的多个线程,您必须尽可能高效地执行此操作。”

然后有两个答案是候选答案:A.

lock(file)
{
// Read
}

D.

ReaderWriterLock rwl = new ReaderWriterLock();
rwl.AcquireReaderLock(10000);
// Read
rwl.ReleaseReaderLock();

问题中的微妙暗示“它必须对多次读取有效”当然意味着他们希望您使用 ReaderWriterLock,但后来我想:“创建一个新的实例您锁定的方法中的 ReaderWriterLock 不应该起作用,每次调用该方法都会锁定 ReaderWriterLock 的不同实例。”

但是在答案中它说:D.

恕我直言,这是书中的一个错误。他们可能在代码示例中表示新实例将在其他地方创建。如果我在考试中得到这个问题,我会做错(我会选择 A)。

最佳答案

您的观察是正确的,假设 ReaderWriterLock 确实是在方法体内创建的。为了使锁定按预期工作,所有线程都需要使用相同的 ReaderWriterLock 实例。

如果您问题中的代码示例是答案的完整代码 list ,我会说它以一种相当糟糕的方式呈现,并且很可能会导致人们选择错误的答案,因为他们进行了相当彻底的分析给定的代码示例。

关于c# - 这是 MCTS 自定进度培训套件(考试 70-536)中的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3986840/

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