现在有一个项目,主线程执行所有操作,包括写入本地数据库;因为实际需要,有一个上传数据的线程!如下示:主线程  Thread    A :执行所有界面工作,包括数据分析,保存至(本地)数据库等操作,并将要上传的数据暂存至队列(queue)!子线程  Thread    B:子线程不断查询,一旦查询到队列有新的数据,马上执行上传功能,上传至中心服务器(非本地)!
PS:其中主线程与子线程调用的数据库及其连接字符串都不相同!但是当我测试的时候,发现一旦网络断开之后,子线程在执行ExecuteNonQuery()命令时就会影响主线程的执行,使得软件有个假死的过程,请问出现这种问题是什么原因造成的啊,望高人解答,谢谢

解决方案 »

  1.   

    子线程 Thread B 在 网络断开之后 ,没必要继续运行了,应暂停它。
      

  2.   

    To:yuanhuiqiao
    我创建了线程池  还是会卡机,并且我是将写本地数据库过程和写中心数据库的过程都改成了线程池  但是同样卡机,请问还有其他解决方法吗?为什么执行子线程ExecuteNonQuery()方法时会引起主线程卡机呢,望高手解决啊????
      

  3.   

    这个不是很明显嘛!你有几个脑袋?一个吧!当你用下巴写“回”字的时候,你的两个教尖可以左脚写“女”字右脚写“男子”吗?不行吧。电脑也是这样。所谓多线程,仍然是在分时使用cpu的基础上的。那些简单地断言认为线程越多必然效率越高的说法,是不懂线程的。
      

  4.   

    你的“子线程”必须快速结束,你说的它的“死掉”,实际上是在变本加厉地大量地消耗cpu时间。改什么线程池之类的,当然没有意义。
      

  5.   


    呵呵 谢谢您的提醒   不过我在上传数据的同时  也在使用FtpWebRequest类往中心服务器上传图片,可是上传图片这里就不会出现卡机的情况,而上传数据时候就会出现这种问题,所以很费解啊!
      

  6.   

    [Quote=引用 7 楼 sp1234 的回复:]
    这个不是很明显嘛!你有几个脑袋?一个吧!当你用下巴写“回”字的时候,你的两个教尖可以左脚写“女”字右脚写“男子”吗?不行吧。电脑也是这样。所谓多线程,仍然是在分时使用cpu的基础上的。那些简单地断言认为线程越多必然效率越高的说法,是不懂线程的。
    [/Quote好
      

  7.   


    不知道楼上回复的“好”是想表达什么意思
    我在9楼已经回复过了  当多线程的时候   同样访问中心FTP是没有问题的   但是访问数据库就是有问题我想应该跟:“用下巴写“回”字的时候,你的两个教尖可以左脚写“女”。。”没太大关系吧!并且我看了CPU使用率  一直保持在5%以下  
      

  8.   

    不好意思 最近比较忙  没来的及结贴  
    问题解决了  我当时用的是Mysql数据库  Mysql早期版本的动态库有问题  后来换了个动态库好了