我的刷新机制是这样的。1 我数据库中有个roominfo表,其中有个bModify字段。默认的值是0
2 当我的客户端程序对某一个表的信息进行了修改的时候我会将roominfo表中
  房间对应的记录的bModify的值设置为1.
3 在我客户端程序中,我有个线程A,它来循环读取roominfo表中bModify为1的记录,
  如果找到记录后,给客户端程序发送消息,参数是room的ID,然后将roominfo表
  中的该room记录的bModify设置0.
  客户端的消息处理函数会根据roomID来对应着刷新界面上room的信息。
  
现在问题是当多个客户端同时运行时,其中客户端A执行了这个刷新过程,
roominfo表中的记录bModify就被设置为0了,这样其他客户端就无法在执行
这个刷新过程,导致客户端的界面不同步.求教哪位高手给提提建议,
如何设计能让其他客户端保持同步,都执行刷新操作。

解决方案 »

  1.   

    你的设计存在一定的问题,如果数据量很大,你一直timer会很慢。1.如果数据量很小,而且还不想换机制,那么这样做bModify设置为integer类型
    每个客户端维护一个ID,bModify的列表,每次更新的时候bModify := bModify +1
    然后客户端判断当列表中的bModify小于数据库中的bModify的时候就更新,注意程序
    开始的时候八所有的bModify设置为0。
    2.个人认为最好的办法,使用socket,当一个客户端更新时通知其他客户端要更新数据了。
      

  2.   

    谢谢,各位~
    我采用了3楼的socket方式,把线程放在服务器上运行,
    给每个客户端发送udp消息,
    客户端来接收刷新界面。