您的位置:首页 > 编程语言 > C#

C#实现多线程时如何将底层服务与界面表现分离?

2007-08-27 20:47 731 查看
C/S。

多线程的网络服务端,一个界面线程,一个监听线程,n个对客户的服务线程。希望能将这三者完全分离。界面能够控制监听线程,能够开启或者中止监听线程;监听线程启动服务线程;服务线程将消息反馈给界面线程。

服务线程与界面之间的交互尤其难办。

界面显示服务线程的消息:所有的服务线程共享一个消息队列,线程接收消息后将消息写入该队列;界面创建一个新的线程,通过这个线程来读取队列的数据,也就是来自客户端的消息。

界面控制服务线程:将所有的线程对象保存到一个链表中,需要控制时将线程取出,然后对其控制;但如果socket关闭了,线程自动停止了,又会如何呢?

尽管能用,但似乎偶尔会出现cpu利用率99%的情况。怪哉。

感觉做的太复杂了些。

肯定有简单方法俺不晓得,晕乎。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: