我有一个包含任务的程序。 在所有任务终止后我必须做点什么。 我怎么能这样做?
答案 0 :(得分:4)
在不知道你真正要完成什么的情况下,有几个人想要完成这个任务:
delay 0.0;
),然后通过'已终止属性验证所有任务已终止,或至少pragma Assert()
如此。答案 1 :(得分:4)
在内部块中声明任务:在完成所有任务之前,块不会退出,ARM7.6.1(4)
with Ada.Text_IO; use Ada.Text_IO;
procedure After_Tasks is
begin
Put_Line ("at the start");
declare
task T1;
task T2;
task body T1 is
begin
delay 1.0;
Put_Line ("t1 done");
end T1;
task body T2 is
begin
delay 2.0;
Put_Line ("t2 done");
end T2;
begin
null;
end; -- block here until T1 & T2 are completed
Put_Line ("at the end");
end After_Tasks;