我用ado来连接access数据库。
程序有2个线程:
一个线程根据网络上监听到的数据在access表中添加记录。
另外一个线程获取数据库更新状态,如果已更新,则在clistctrl中显示最新记录。但是现在有问题,写和读两个线程存在同步问题,往往记录集已经更新了,但是读到的是没有更新前的数据,请求帮忙。
程序有2个线程:
一个线程根据网络上监听到的数据在access表中添加记录。
另外一个线程获取数据库更新状态,如果已更新,则在clistctrl中显示最新记录。但是现在有问题,写和读两个线程存在同步问题,往往记录集已经更新了,但是读到的是没有更新前的数据,请求帮忙。
在GetNewRecord(bool &bNew)和SetNewRecord(bool bNew)中用cs.lock()和cs.unlock()在写线程用:在recordset.update后面用my->SetNewRecord(true)
在读线程用:Test.GetNewRecord(bIsNew);if(bIsNew == true){...}但是这样也不行阿,好像是.update在没有更新完毕的情况下就返回一样,读线程中返回的recordset总是差几条记录。
http://vcprogramming.nease.net/code/mfctalk.zip