我簡化了這個代碼示例目的:如何鎖定成員變量?
class TextLogger : IDisposable
{
private FileStream m_FileStream;
private StreamWriter m_StreamWriter;
void CreateNewLogFile()
{
//Open the File
m_FileStream = File.Open(
m_CurrentFileName,
FileMode.OpenOrCreate,
FileAccess.Write,
FileShare.Read);
m_StreamWriter = new StreamWriter(m_FileStream);
....
}
}
嘗試新出的StreamWriter當我得到一個InvalidArgumentException
,因爲m_FileStream
已被釋放被另一個線程,而空(m_StreamWriter
也爲空)。我如何鎖定成員變量?
你在哪裏分配m_FileStream你正在創建一個空值流它顯示..你有你從問題中省略的額外代碼..? – MethodMan 2012-08-03 22:18:49
你在哪裏創建初始FileStream ..? – MethodMan 2012-08-03 22:21:03
@DJKRAZE - 我有它正確的上面(見編輯) – 2012-08-03 22:24:31