开发随笔-处理.net 多线程访问数据库问题
来源:互联网 发布:2016中国粮食浪费数据 编辑:程序博客网 时间:2024/04/30 14:48
我的上篇文章的问题,经过这两天的努力终于有了结果
http://blog.csdn.net/hliq5399/article/details/7345377
我采用.net ThreadPool 确实不能解决我的问题.
public void ProcessQueue() { while (CCHelper.GetQueueCount() > 0) { for (int i = 0; i < iMaxThreads; i++) { WaitCallback a = new WaitCallback(ProcessOneQueue); ThreadPool.QueueUserWorkItem(a, null); Thread.Sleep(5000); } } } public void ProcessOneQueue() { //处理队列,提交网关. }
Thread.Sleep(5000) 是不能解决我的问题的,这个太不保险了,线程池主要是不能灵活控制,我设断点调式发现只要访问数据库的地方,就不能继续跟踪断点了.
于是我找了资料,发现很多人都是说SqlConnection多线程是需要单独创建的.
http://blog.csdn.net/hliq5399/article/details/7350466
详细看了我的代码后,发现SqlConnection是单独创建的.
后面决定手工创建线程,来解决问题:
Thread[] threads = new Thread[iMaxThreads]; for (int i = 0; i < iMaxThreads; i++) { threads[i] = new Thread(new ThreadStart(ProcessOneQueue)); threads[i].Start(); }
private object obj = new object();public void ProcessOneQueue(){ lock(obj){//处理队列,提交网关}}
ok,问题解决.
同事介绍说,可以用VS2010&.Net 4.0 之并行运算(Parallel)(For、Foreach)来解决
可以看我转载的这篇文章:
http://blog.csdn.net/hliq5399/article/details/7352166
这篇是后面找到的,大家可以看看
http://www.cnblogs.com/Henllyee/archive/2010/05/01/ParallelProgaramming1.html
时间的关系,个人感觉还没有完全深入,后续再跟.
- 开发随笔-处理.net 多线程访问数据库问题
- 浅谈多线程访问access数据库处理
- asp.net开发随笔
- asp.net开发随笔
- 开发随笔-.net ThreadPool
- .Net+MySQL的开发(数据库访问)
- .Net+MySQL的开发(数据库访问)
- Android sqlite数据库并发访问问题处理
- 处理高并发访问数据库问题
- ASP.NET遇到问题---Datareader访问数据库
- 多线程程序处理内存泄漏和访问冲突问题
- .NET中访问Oracle数据库链接:ORA-02041: client database did not begin a transaction 问题的处理。
- 使用ADO,多线程访问ACCESS数据库的开发。
- 使用ADO,多线程访问ACCESS数据库的开发。
- 多线程访问数据库
- 多线程访问数据库
- ASP.NET数据库编程之处理文件访问许可
- 多线程多进程数据库访问应注意问题
- 理解嵌入式开发中的一些硬件相关的概念
- Struts2.0配置文件(web.xml) .
- 建立虚拟无限网络
- jquery mobile开发移动web实战之 settimeout funcition带参数的问题
- 16. 在新公司的悲剧开始
- 开发随笔-处理.net 多线程访问数据库问题
- F# 入门(十三):Record(记录)
- 分组背包神马的...
- 简单的XML在ASP.NET中增删改应用
- Oracle 专用术语自我理解
- 安装MySQL 4.12(完全安装,重新安装)
- Python_Python安装包下载
- MFC之VS2008的DEBUG和RELEASE
- DM642 FVID驱动