StreamReaderのタイムアウトについて教えて下さい。
以下のような形でStreamReaderに対してReadTimeoutの値を設定する
ことによって1分でReadLine()を抜けてくれます。
(例外:転送接続からデータを読み取れません: 接続済みの呼び出し先が
一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。)

ただし、それは最初の一回だけで、2回めのReadLine()に入った以降
は直ぐに抜けて(タイムアウト値が効いていない)同じ例外が発生します。
以下にプログラムの抜粋を示します。

serverReader = new StreamReader(netStream, Encoding.UTF8);
serverReader.BaseStream.ReadTimeout = 60000;      <=== 1分でタイムアウトに設定

// スレッド内の処理
private bool ProcessMessage(StreamReader reader)
{
    lock (this) {
        while (true) {
            try {
                string message = reader.ReadLine();  ===> 1回目は正しく1分でタイムアウトが発生する
                if (message != null) {
                    ss = ParseMessage(message,this);
                }
            }
            catch (Exception e) {
                ===> 1回目は正しく1分でタイムアウトが発生するのだが
                ===> 2回目以降は直ぐにReadLine() から抜けてしまう
                if (IsKill) {
                    result = false;
                    break;
                }
                Thread.Sleep(50);
            }
        }
    }
}

質問は2回目以降もこのReadTimeout 値が効くようにするのはどの様に
すれば良いのでしょうか?