CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

多线程读写access数据库导致死机,不知什么原因

楼主lanser(lanser)2005-09-11 22:50:49 在 VC/MFC / 数据库 提问

我编写了一个下载WEB网页的程序,使用access2000数据库存储数据。  
  界面上提供几个按钮:  
  一个是刷新列表,需要从数据库表Article中读取记录;  
  另一个是启动下载线程,下载网页和内部相关的图片,分别保存到表:Article,   ObjStorage中。  
   
  对于表的操作,已经使用了信号量:  
   
  在CWebApp中创建了CMutex   m_Mutex(FALSE,   NULL);  
   
  在CWebDlg中创建了CSingleLock   sLock(&(theApp.m_Mutex));  
                    在LoadRecords中读取记录并刷新CListCtrl  
   
  下载网页的时候,将启动一个线程static   CWebDlg::ThreadProc,  
  线程中主要调用CReadWebPage类实现文章列表下载。  
  在CWebDlg中创建了CSingleLock   sLock(&(theApp.m_Mutex));  
   
  CReadWebPage首先  
        下载栏目页面;  
        循环分析文章链接  
        {  
              然后下载文章内容  
              生成文章记录  
              循环分析包含的图片链接  
              {  
                      下载图片文件  
                      生成文章对应的图片记录  
              }  
        }  
   
        不管是显示函数中,还是下载函数中,对于记录集的操作都首先使用sLock.Lock();记录集合关闭后使用sLock.Unlock();  
   
  我在测试的时候,首先开始下载,然后不停地按刷新显示,经过不定长地时间,程序界面完全没有反应。  
   
  使用VC->Attach   To   Process,中断运行,看到地Call   Stack中已经没有进程的调用显示了,比如:  
  NTDLL!   77f9323e()  
  USER32!   77df3990()  
  USER32!   77df3a5c()  
  MSJET40!   1b10f86e()  
  104539c0() 问题点数:30、回复次数:5Top

1 楼lanser(lanser)回复于 2005-09-11 22:57:41 得分 0

我读取数据库采用的是ODBC方式,直接连接web.mdb数据库文件  
  Top

2 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-09-12 15:32:42 得分 10

还是要好好检查一下线程之间的同步等Top

3 楼XJM36(Crazy For Star)回复于 2005-09-13 09:19:43 得分 20

access对多线程这种东西的支持本来就不是很好的!Top

4 楼lanser(lanser)回复于 2005-10-07 16:30:39 得分 0

线程同步没有问题的。如果换成MSSQL就不会出问题了。Top

5 楼lanser(lanser)回复于 2005-10-07 16:38:32 得分 0

虽然没有找到最终的原因,还是非常感谢大家Top

相关问题

  • 多线程死机了?
  • 多线程与数据库问题。
  • 多线程扫描数据库
  • 数据库多线程查询
  • 求数据库多线程的例子?
  • 多线程连数据库的问题
  • 多线程更新数据库问题
  • 多线程中操作数据库
  • 多线程访问数据库
  • 数据库多线程查询

关键词

  • 数据库
  • 下载
  • 线程
  • 网页
  • cwebdlg
  • slock
  • 记录
  • 读取
  • 刷新
  • 创建

得分解答快速导航

  • 帖主:lanser
  • oyljerry
  • XJM36

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo