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

来源:互联网 发布:zepto.js文档 编辑:程序博客网 时间:2024/06/03 22:42

     C/S。

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

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

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

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

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

   感觉做的太复杂了些。

  肯定有简单方法俺不晓得,晕乎。