多线程————EinvaldOperation 异常的问题!!!(50分)

  • 主题发起人 主题发起人 善凉的狼
  • 开始时间 开始时间

善凉的狼

Unregistered / Unconfirmed
GUEST, unregistred user!
处于查询时,不使程序象死机,用了多线程访问数据库。可能是线程没处理好,程序很不稳定,运行几次后就会抛出“EinvaldOperation with messag 'canvas does not allow drawing'”.
出错后,光标停在如下程序Hsum处:
ini2 := Tinifile.Create(ExtractFilePath(Application.ExeName) + '/Info/Time.inf');
Lsum := FDateToSec(StrToDateTime(ini2.ReadString('StartDate','StartDate',' '))
,StrToDateTime(ini2.ReadString('StartTime','StartTime',' ')));
ini2 := Tinifile.Create(ExtractFilePath(Application.ExeName) + '/Info/Time.inf');
——》 Hsum := FDateToSec(StrToDateTime(ini2.ReadString('EndDate','EndDate','')),
StrToDateTime(ini2.ReadString('EndTime','EndTime','')));
end
else
到底是那里的错呀。
 
光标停的位置可能不对吧,此处的几行代码没有能引起错误的呀,
注意,在线程中不要直接访问不支持线程安全的VCL对象
 
应该是文件操作上的错误
 
在线程理操作数据库问题很多,同时过多的保护方法会严重拖速度,
看你的错误提示,估计是没有同步VCL界面类控件出的错。
 
无忌说的不错,不过这次我的问题是出在.ini文件的声名上了。现在已经解决了!
 
后退
顶部