public string ReadLine()
{
// Lock while reading so that we can make safe assumptions about the buffer indices
lock (m_buffer)
{
for (int i = m_offset; i < m_buffer.Length; i++, m_offset++)
{
if (m_buffer[i] == '\n')
{
m_buffer.Remove(0, m_offset + 1);
string _line = m_lineBuilder.ToString();
m_lineBuilder.Length = 0;
m_offset = 0;
return _line;
}
m_lineBuilder.Append(m_buffer[i]);
}
return null;
}
}