我简化了这个代码示例目的:如何锁定成员变量?
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