问题帖子:http://topic.csdn.net/u/20120923/23/ebcf7e71-8e4a-4fd6-b849-0dd9b800c8d4.html 按照大家提供的一个方法,打印程序中的信息。通过跟踪,发现到后来是由于数据处理线程(dealthread)得不到执行造成的,如:线程在2012-10-02-21-26-49时在运行,之后一直没能执行,直到2012-10-02-22-44-28才又得到执行,而且我确定正常情况下,此处理线程应该一直在执行。但是我不知道如何解决此问题。
在程序中我将数据处理线程的优先级设置为tplower(线程优先级比正常低1点),有可能是此处造成的问题,当主线程一直忙时,数据处理线程得不到执行,但是将其设为正常优先级的话,主线程接收数据的线程很多数据都没能放入队列中......
望高手们能提供些建议
在程序中我将数据处理线程的优先级设置为tplower(线程优先级比正常低1点),有可能是此处造成的问题,当主线程一直忙时,数据处理线程得不到执行,但是将其设为正常优先级的话,主线程接收数据的线程很多数据都没能放入队列中......
望高手们能提供些建议
http://topic.csdn.net/u/20110217/11/56577c65-2e77-4f8f-b541-0be47cdb4d60.html?46037
try
truedata:=tmpDataArea.popData;
finally
Wrclient.Release;
end;
我认为我是做到这一点了,其实我也是怀疑此处的问题,找造成此问题的原因,不过还是没能解决问题......
建议还是考虑一点点的看下线程内部是否有操作全局变量或者VCL控件吧。
记着使用临界区