描述:
一个C/S程序,在本地存有一个SQLLITE数据库。用户操作时,首先将数据写入SQLLITE。(Insert)
另外启动了一个线程,它负责将本地的数据和服务器数据进行同步。
现在的问题是:在C/s程序中保存时,可能正碰到线程处理数据,需要等待线程执行完毕。从界面看起来保存数据会有延迟。
我想用线程的优先级来处理,例如:
thread.Priority = ThreadPriority.Lowest;
不知道这样处理时,会不会导致其它问题,例如:线程还没执行完毕,将本地一行数据的状态已经置为UPdate状态,但数据库操作还没完成 。
请教高手指点.在线等
一个C/S程序,在本地存有一个SQLLITE数据库。用户操作时,首先将数据写入SQLLITE。(Insert)
另外启动了一个线程,它负责将本地的数据和服务器数据进行同步。
现在的问题是:在C/s程序中保存时,可能正碰到线程处理数据,需要等待线程执行完毕。从界面看起来保存数据会有延迟。
我想用线程的优先级来处理,例如:
thread.Priority = ThreadPriority.Lowest;
不知道这样处理时,会不会导致其它问题,例如:线程还没执行完毕,将本地一行数据的状态已经置为UPdate状态,但数据库操作还没完成 。
请教高手指点.在线等
毫无必要去new你自己的一个线程。例如代码cmd.Execute(insert);
ThreadPool.QueueUserWorkItem(h=>{ 复制数据(insert); });这就行了。
这也用不着new什么thread对象。使用一个timer去提交数据,与写数据的操作使用一个lock互斥即可。