大致功能是数据库有数据更新后,服务器将更新的数据发送给客户端,timer控件貌似会占用很多资源,求教用怎样的解决方案比较好?数据库是mysql 。服务器和客户端双向通信可以了 一对一发送数据也可以。最好有实例
解决方案 »
- sharppcap
- C#怎么实现打印机
- 江湖救急,第二张贴,有关ComboBox的问题。
- 向ACCESS库中插入500条数据。有以下三种方法,发现速度差距极大!
- 请问在VS2005的C#类中如何启动framework2.0?
- (WinForm)我用的是VS2003,怎么就找不到datagridview控件呢?弱智的问题,大虾们别笑~
- dataset更新数据库问题,急盼解决
- datagrid中如何在一行中显示多条记录!
- 大虾请进。。一个关于数据库的问题!
- 不知道哪位能帮小弟一个忙:怎么样在textBox中将某一个个字符固定!
- C#控制台程序引用System.Web.Security时出错
- 请教,如何用分号连接字符串数组变成一个字符串?
怎样去监听数据库?这方面找了很多找不到 可能关键词不对 数据库是mysq的
timer定时查询很耗资源可以的话不考虑这个
不知道你的服务器是否要和客户端保持长连接,想来应该是需要的,若建立长连接,对于个客户端的socket连接、状态、相关信息等,多多少少都会进行相关维护。 建立客户端列表简单点可以用List,其中包含socket、连接状态、客户端ip、等等,根据你的需求定制。不过不需要长链接 ,那么你的客户端必定有固定的ip,若如此客户端列表也可以省略。如前面所说 检测到更新的时候,把相关数据读取到工作任务列表,如果会出现多条等待更新数据 ,那么久要建立work list了, 一般用Queue,保证先进先出的原则。
当然数据少,就不必如此了对work list 的操作 可由多线程处理,至少一个存储线程,负责向work list中存储更新的数据,
一个独取线程,负责向外读取数据并发送。
在Queue空的时候,暂停两个线程,检测到更新的时候,启动连个线程