public void BeginMonitoring() {
if(IsMonitoring)
throw new InvalidOperationException("Already monitoring for changes.");
this.IsMonitoring = true;
this._LogStream = new FileStream(LogPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
_LogStream.Seek(0, SeekOrigin.End);
// Instead of proper async handling, take the lazy way and ReadLine in a new thread.
_LogThread = new Thread(RunReadLoop) { IsBackground = true };
_LogThread.Start();
}