请教多线程的问题:线程优先级

botao2690 2012-04-14 10:58:08
描述:
一个C/S程序,在本地存有一个SQLLITE数据库。用户操作时,首先将数据写入SQLLITE。(Insert)
另外启动了一个线程,它负责将本地的数据和服务器数据进行同步。
现在的问题是:在C/s程序中保存时,可能正碰到线程处理数据,需要等待线程执行完毕。从界面看起来保存数据会有延迟。
我想用线程的优先级来处理,例如:
thread.Priority = ThreadPriority.Lowest;
不知道这样处理时,会不会导致其它问题,例如:线程还没执行完毕,将本地一行数据的状态已经置为UPdate状态,但数据库操作还没完成 。
请教高手指点.在线等。。。

...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
botao2690 2012-04-18
  • 打赏
  • 举报
回复
这倒是一个好方法,谢谢两位!
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

是这样:这个C/S程序是手持上的。通过无线和服务器进行数据交互。考虑这种方法主要是无线不稳定的情况下。线程会不断在进行工作。一旦连上了,线程还可以将以前的数据也复制过去。
[/Quote]

这也用不着new什么thread对象。使用一个timer去提交数据,与写数据的操作使用一个lock互斥即可。
cheng2005 2012-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
是这样:这个C/S程序是手持上的。通过无线和服务器进行数据交互。考虑这种方法主要是无线不稳定的情况下。线程会不断在进行工作。一旦连上了,线程还可以将以前的数据也复制过去。
[/Quote]
提供一个抢连接的机制,保证同时只有一个连接在使用.这样就避免了锁.
botao2690 2012-04-14
  • 打赏
  • 举报
回复
是这样:这个C/S程序是手持上的。通过无线和服务器进行数据交互。考虑这种方法主要是无线不稳定的情况下。线程会不断在进行工作。一旦连上了,线程还可以将以前的数据也复制过去。
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
另外启动了一个线程,它负责将本地的......
[/Quote]

毫无必要去new你自己的一个线程。

例如代码
cmd.Execute(insert);
ThreadPool.QueueUserWorkItem(h=>{ 复制数据(insert); });
这就行了。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧