日期:2014-05-20  浏览次数:21119 次

怎么做到延迟存储信息到数据库
当一种操作对数据库操作时间可能过长,例如要用事务写数十个表的数据,让用户长时间等待不好,先验证后给用户一个操作成功的消息,然后把插入操作存入一个执行队列中,延迟存储。
.net是否有这样的解决方案?msmq可否?

------解决方案--------------------
可以放到一个后台线程,线程定时将数据存入到数据库中,例如timer,该线程对应用程序提供接口,应用程序只负责往线程里写东西,剩余的时候由线程来操作。
------解决方案--------------------
Backgroundworker worker =new Backgroundworker();
worker.DoWork+=new DoWorkEventHandler((sender,e)=>
{
//ToDo
//比如说提示前台用户:当前数据正在加载中....
//事务插入数据
});

worker.ProgressChanged+= new ProgressChangedEventHandler((sender,e)=>
{
//ToDo
});

worker.RunWorkerCompleted+=new RunWorkerCompletedEventHandler((sender,e)=>
{
//数据已加载完毕
});

实际上Backgroundworker完全可以解决你得问题。
------解决方案--------------------
用个定时器过一阵子再执行存储?