线程冲突问题, 请高手们指点指点 我的程序中有两个线程同时在运行: 一个SOCK线程,用来从服务上下载文件;一个串口线程,用来将文件下载到PDA,空闲的时候发在线检测命令给PDA,若PDA在一定时间内返回相应的信号表示在线,否则退出。现在的问题是,当SOCK线程在用FTP下载文件时,串口线程就收不到PDA返回的信号,以至通信无法继续下去。 请问这是怎么一回事,要怎么解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 开第三个线程,把检测PDA和往PDA里面写数据的功能分开,看看会怎么样?从服务器下载文件和向PDA下载文件的操作要注意文件的同步,还有就是在用SOCKET下载的线程里面加上sleep看看...不知道你在程序里面是不是用到了CriticalSection,如果有的话,就要查看一下是不是有些Acquire之后忘记Release了? 〉〉问题是,当SOCK线程在用FTP下载文件时,串口线程就收不到PDA返回的信号,以至通信无法继续下去。 请问这是怎么一回事,〉〉说明你的代码处理有问题,互相有影响,可能要加入一些同步处理贴出关键代码 从服务器上下载文件与下载文件到PDA两个过程是分开的,只有从服务器上将文件下载下来后才将此文件写入PDA,在SOCK下载文件的同时,串口线程是空闲的,只是做一件事:检测PDA在线,每隔22秒发一次信号给PDA。 这个可以肯定,查询信号发了,格式也对。如果没有SOCK通讯,就可以收到PDA的返回信息。 我刚才调试了一下,发现一个问题,FTP下载文件时弹出一个对话框来显示下载进度,如果把这个对话框去掉不显示,那么串口线程就会收到PDA的返回信息。但这个对话框还是要的呀,对话框的调用和进度显示都是通过PostMessage, 应该不影响线程呀,各位,有什么好的办法呀? 谢谢帮我解决这个Gina 系统性能问题 COM的调用 请教一下各位大虾,小生两个弱智问题!! 急.spcomm 怎么让全屏的游戏窗口化(比如MU) 文件传送 這個錯誤怎樣解決﹕(ADOQuery1: Command Text does not return a result set.) 如何动态创建ODBC驱动? 写服务器程序时,绑定的问题...... 高分请教大侠::如何将这个txt文件用程序导入到access数据库中??? 在D7下如何用INDY实现整个文件夹的上传?
从服务器下载文件和向PDA下载文件的操作要注意文件的同步,还有就是在用SOCKET下载的线程里面加上sleep看看...
不知道你在程序里面是不是用到了CriticalSection,如果有的话,就要查看一下是不是有些Acquire之后忘记Release了?
可能要加入一些同步处理贴出关键代码