我正在閱讀MCTS Self-Paced培訓套件(考試70-536):Microsoft .NET Framework-應用程序開發基礎,第二版電子書。這是MCTS Self-Paced Training Kit(考試70-536)中的錯誤嗎?
現在我正在完成線程章節(nr。7)。在第2課結尾處的問題中,有一個問題(第2節)提出要求:「您正在編寫一個可以由多個線程運行的方法。確保在任何線程正在讀取時沒有線程寫入文件從文件中讀取,但是您必須儘可能有效地完成多線程同時讀取的操作。「
然後有兩個答案它們是候選答案: A.
lock(file)
{
// Read
}
和
D.
ReaderWriterLock rwl = new ReaderWriterLock();
rwl.AcquireReaderLock(10000);
// Read
rwl.ReleaseReaderLock();
在討論的微妙暗示,「它有對多次讀取有效「當然意味着他們希望您使用ReaderWriterLock
,但後來我想:」創建一個的新實例您正在鎖定的方法中的應該不起作用,每次調用方法都會鎖定ReaderWriterLock
的不同實例。「
然而,在回答它說:D.
所以恕我直言,這是這本書的錯誤。它們在代碼示例中可能意味着新實例將在其他地方創建。如果我在考試中得到這個問題,我會錯誤的(我會選擇A)。
我想他們的意思是RWL是在線程方法的範圍之外創建的...... – 2010-10-21 11:20:30
代碼是否在答案D的整個列表上方? – Lazarus 2010-10-21 11:23:11
@Tony:這也是我的想法,但他們沒有在答案中表明。 – 2010-10-21 11:24:54