C# console控制台 如何: 1判断控制台处于等待用户输入状态?

C# console控制台 如何: 1判断控制台处于等待用户输入状态? 2向输入流写入数据? 3终止输?
我遇到一个问题,编写一个控制台程序,类似于网络聊天.
作为客户端,我总是在等待用户输入,也就是
while (true)
{
string 用户输入= Console.ReadLine();
执行命令(用户输入);
}
但是该程序同时有个服务端,总是在等待对方发过来的信息,当然这是在另一个线程里面
但是,因为控制台是一个公共资源,
假如 客户端这边程序在Console.ReadLine();程序阻塞,等待用户输入,这时候,服务端收到一个消息,需要我来输入y,或者n 来决心下一步.我在服务端也用到Console.ReadLine();
然而,这个时候,用户输入y,不是返回给服务端,而是返回给客户端....
我思考了2天,用线程同步,等无法解决该问题,只有:解决了我标题中的三个问题才能解决,求大侠帮帮忙.

http://zhidao.baidu.com/link?url=4WF3FGd9PjbTWJdMGmBQ6GryQ6qaXJpM0YOnoNTGPQwnF76DVb5-qA-cX46fxbI9qgsjAS9VGl48Cfw2fZF3m_

http://zhidao.baidu.com/question/587014171713686205.html

我发现,还是百度上的人热心些,也牛逼些