请问:函数调用的问题: 当有多个地方同时调用同一个函数时,请问DELPHI是怎样处理的,会不会出现数据的混乱,还是会在内存中分配不同的空间建立相同的多个函数,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意hiflower(花),函数是线程安全的,但公共变量在线程中使用要加信号量控制 VCL 组件不是线程安全的,因此必须在临界区中操作 Query,具体查看 TCriticalSection 的帮助 我未写过临界变量:这样写可以吗? lockquery.Acquire; try chatform.rev.append;//存到数据表 chatform.rev.FieldByName('rev').asstring:=pass; chatform.rev.ApplyUpdates; finally lockquery.Release; end; 就是这样,把所有 VCL、全局相关的代码包在里面 lockquery是我定义的临界对象,定义方法是lockquery:TCriticalSection,后创建对象实例,lockquery:=TCriticalSection.Create;请问:我在程序中很多地方都可一这样写吗,不用定义很多临界对象变量吧 lockquery.Acquire; try ...... finally lockquery.Release; end; 为什么要在很多地方写呢?只需要在可能并发访问的地方用,并且用同一个临界区变量。更好的办法是在线程中,把访问主线程中 VCL 对象的代码组成一个方法,然后用 Synchronize()执行此方法 帮忙给软件取个好听的中文及英文名字!!! dbgrideh怎么指定指定的列不排序? 这种情况怎么改进! 打印窗体的问题 请问richedit.pas单元在中定义的EM_FINDTEXT等消息,在接收到消息后在什么地方进行消息处理?(在线) 通过自绘的办法改变 TTabSheet TToolButton 控件的底色 怎么修改delphi程序运行后的生成图标? about打印 一个用Delphi做ActiveX的问题 小菜,大家顺路把它干掉吧!!!! 很复杂的求和统计 对我而言是个高难度的问题!
try
chatform.rev.append;//存到数据表
chatform.rev.FieldByName('rev').asstring:=pass;
chatform.rev.ApplyUpdates;
finally
lockquery.Release;
end;
lockquery.Acquire;
try
......
finally
lockquery.Release;
end;
更好的办法是在线程中,把访问主线程中 VCL 对象的代码组成一个方法,然后用 Synchronize()执行此方法