【发布时间】:2015-05-19 22:55:34
【问题描述】:
我有这个代码>
type
TCallBack = procedure(APerc: Integer) of object;
....
procedure CallingProcedure(a, b, c: Integer; ACallBack: TCallBack = nil);
....
我从我的主类/对象中调用这个函数,如下所示:
CallingProcedure(1, 2, 3, DoOnCallBack);
DoOnCallBack 定义为:
procedure DoOnCallBack(APerc: Integer);
这编译得很好,没问题 - 我这样做了很多次。
但在 CallingProcedure 中,当我想检查 Assigned(ACallBack) 是否为 False 时。
谁能告诉我我做错了什么。
我是从 Thread 调用这个,这可能是个问题吗?
【问题讨论】:
-
据我所见应该没有任何问题。您能否发布一个演示该问题的 SSCCE。
-
这个编译?我不这么认为...
DoOnCallback是一个常规程序——TCallBack被定义为procedure of object。你能发布你的真实代码吗? -
两个人抱怨代码没有展示问题,但都没有投票关闭。带有伪造代码的问题不在此处讨论。
-
@RobKennedy 抱歉,我通常会这样做 - 早些时候非常忙,没待太久,我就忘记了。
-
@Wolf 这个问题没有谈到从另一个线程调用一个线程。并没有说所有跨线程数据访问都必须同步。不要宣传这样的错误信息。线程交互的方式有很多种。橙子不是唯一的水果。
标签: delphi