`
kofsky
  • 浏览: 202862 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

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

阅读更多

     C/S。

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

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

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

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

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

   感觉做的太复杂了些。

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

 

 

 

 

分享到:
评论

相关推荐

    C# Socket异步通信+事件与委托+通信程序与界面分离

    本教程主要探讨如何使用C#的Socket实现异步通信,并结合事件和委托来处理通信过程中的消息传递,以及如何将通信逻辑与用户界面(UI)分离,以实现更高效、更灵活的程序设计。 首先,让我们理解什么是Socket异步通信。...

    数值模拟实时三维可视化的C#与OpenGL实现

    例如,C#与OpenGL的结合需要对两种技术有深入的理解,尤其是在内存管理和多线程编程方面。此外,为了确保软件的高性能运行,还需要对图形渲染管线进行优化,减少不必要的计算负载,提高帧率和响应速度。跨平台支持也...

    C#标准电商网站

    总的来说,【C#标准电商网站】项目展示了C#语言在构建复杂Web应用时的强大能力,包括用户管理、数据库交互、并发处理、前后端分离等多个方面。通过Visual Studio 2016的开发环境,开发者可以更高效地构建和调试项目...

    C# WPF - 音频视频播放器

    8. **多线程处理** 处理音频视频流通常涉及大量的计算,为了不影响用户界面的响应性,我们可能需要在后台线程中处理媒体数据。C#的Task并行库和异步编程模型(async/await)可以帮助我们轻松实现这一点。 9. **...

    生产管理系统(c#.net源码)

    4. **多线程**:利用.NET的多线程功能,实现并行处理,提高系统性能。 5. **异常处理**:通过C#的异常处理机制,确保程序在遇到错误时能正确响应,保持系统的稳定性。 五、系统架构与设计模式 1. **三层架构**:...

    C#上位机开发(波形显示).zip

    可以使用多线程处理后台任务,避免阻塞UI线程;使用异步编程模型(如async/await关键字)来改善用户体验。 总之,C#上位机开发结合了底层通信、数据处理、图形显示等多种技术,是一个综合性的工程实践。理解和掌握...

    实例88_C#_

    10. **多线程**:在复杂的系统中,可能需要使用多线程来确保控制逻辑和用户界面的分离,提高程序的响应性和稳定性。 综上所述,“实例88_C#_”的项目涉及了C#与硬件交互的多个方面,包括通信协议、设备驱动、用户...

    C#.NET快速开发框架_V1.1程序

    C#语言设计时考虑了现代软件开发的需求,支持类型安全、垃圾回收、异常处理、多线程等特性,同时还引入了诸如 LINQ(Language Integrated Query)这样的高级查询机制,使得数据操作更加便捷。 C#.NET快速开发框架_V...

    c#设计模式随书源码

    9. **桥接模式**(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。在C#中,可以利用接口和抽象类的组合来实现。 10. **组合模式**(Composite):允许你将对象组成树形结构来表现“整体/部分”...

    C#最全经典设计模式Demo.zip

    9. **桥接模式(Bridge)**:将抽象部分与它的实现部分分离,使它们都可以独立地变化。C#中,通过接口和实现类分离实现。 10. **组合模式(Composite)**:允许你将对象组合成树形结构以表示“整体/部分”层次结构...

    C#启动项管理器源码

    7. **代码组织与设计模式**:为了使代码易于维护和扩展,开发者可能采用MVC(模型-视图-控制器)、MVVM(模型-视图-ViewModel)等设计模式,将业务逻辑、数据表示和用户界面分离。 8. **XML配置文件**:为了存储...

    局域网群聊

    局域网群聊是一种在有限网络...综上所述,局域网群聊项目涉及到C#编程、WPF界面设计、网络通信、多线程、异步编程等多个方面,是一个综合性的学习实践项目。通过这样的项目,开发者可以深入理解并掌握这些关键技能。

    C#Mp3播放器源码

    总之,开发一个C# MP3播放器涉及了C#的基础语法、面向对象编程、文件I/O、音频解码、线程管理和UI设计等多个知识点。通过学习和实践这些技术,你可以创建出功能完备、用户体验良好的MP3播放器软件。

    c# 聊天工具-Boys and Girl

    同时,System.Threading命名空间的线程管理类确保了多用户并发访问时的性能和响应性。 通信机制是聊天工具的关键。在这里,C#的委托和事件模型发挥了重要作用。通过定义事件处理函数,当接收到新的消息时,程序可以...

    C# wpf wifi网络共享源码.zip

    通过学习和研究这个源码,开发者不仅可以了解如何利用C#和WPF构建桌面应用,还可以掌握如何与Windows系统底层接口交互,以及如何实现网络共享功能。这对于想要提升自己在桌面应用开发和系统编程方面技能的开发者来说...

    JAVA、C语言、C#设计BBS论坛

    首先,JAVA作为服务器端的主要开发语言,利用其强大的多线程处理和网络通信能力,构建了论坛的后端服务。JAVA的面向对象特性使得代码结构清晰,易于维护。可能用到了Spring框架进行依赖注入,提高代码的可重用性和可...

    截图WPF&Winfrom;&C#.zip

    1. **事件驱动编程**:C#的事件模型使得UI与业务逻辑分离,提高了代码的可维护性和可扩展性。 2. **多线程**:为了保证用户体验,截图功能可能涉及到多线程操作,如在后台线程执行耗时的图像处理,防止UI卡顿。 3. *...

    WPF编程宝典--使用C#2012和.NET4.5(源码)

    5. **.NET4.5框架改进**: 包括性能优化、新的WCF和WF特性、ASP.NET改进以及更好的多线程和并发支持等。 **Pro WPF 4.5 in C#书籍简介** 《Pro WPF 4.5 in C#》是一本深入讲解WPF技术的权威书籍,第四版涵盖了C#...

Global site tag (gtag.js) - Google Analytics