I've never used TextReader.Synchronized...but you could just as easily wrap your reads/writes in a lock() block. Or for cross process synchronization a mutex.