非常奇怪的现象,如下
1、创建一个监听线程,每监听到一个连接,创建一个接受线程
2、每个接收线程在接收到报文后,其中一些报文会启动SQL操作,但是并不是大量的数据库操作
3、每个接收线程之间互不关联
4、最奇怪的现象是,当采用远程桌面连接时,大部分时候会导致程序界面卡死,但是后台建立的接收线程还能正常工作
5、如果没有远程连接的切换,程序能多坚持一段时间,但是也有主界面卡死的情况
6、经过多次测试,如果只是socket连接,不操作数据库,应该不存在这种问题,如果单纯大量操作数据库也不存在这个问题,就是在socket连接中操作数据库会导致主界面卡死,但是我主程序下面基本没有任何代码,就是打开监听对象,然后开启新线程监听,剩余的操作都是在子线程中完成的有没有高手指点一下啊,已经困扰了我很长时间了,郁闷死了

解决方案 »

  1.   

    按说你的业务逻辑都起了线程,应该不会阻塞UI塞,是不是还有些逻辑在UI的主线程上的?或者将线程部分换成“BackgroundWorker”控件试试呢?
      

  2.   

    1.检查你的数据库查询语句(在socket连接中操作数据库的具体操作)
    2.你所说的"如果单纯大量操作数据库也不存在这个问题" 这种情况是在本机操作还是已在socket连接下 不知道你是否成功远程连接过数据库