Ada从入口点开始准备终止任务

Ada从入口点开始准备终止任务,ada,Ada,我有一个任务只有一个Stop条目和一个else部分,我如何实现该任务在无限循环的else部分中完成任务,但当调用Stop时,它已设置为准备终止 这是选择的部分 select accept Stop do exit; end Stop; else delay 3.0; --do something end select; 执行此操作(为清晰起见,添加了假定循环语句): 请注意,accept语句的主体只有在需要处理其参数时才是必需的。因为Stop没有

我有一个任务只有一个Stop条目和一个else部分,我如何实现该任务在无限循环的else部分中完成任务,但当调用Stop时,它已设置为准备终止

这是选择的部分

select  
  accept Stop do  
    exit;  
  end Stop;  
else  
  delay 3.0;  
  --do something
end select;
执行此操作(为清晰起见,添加了假定循环语句):

请注意,
accept
语句的主体只有在需要处理其参数时才是必需的。因为
Stop
没有,所以
accept
语句没有正文是没有意义的

您的错误来自以下规则:

适用于给定loop_语句的exit_语句不得出现在body或accept_语句中,如果该构造本身被给定loop_语句包围


我还将您的
else
更改为
,以便在整个等待时间内接受
停止
,我认为这是您想要的。使用
停止
仅在执行
选择
时被接受,而不是在
延迟
开始后被接受。

到目前为止您尝试了什么?你能给我们看一下你的原文吗?在问题中添加了选择部分。你试过你在问题中写的东西吗?它的工作原理与您的预期有什么不同?
loop
   select
      accept Stop;
      exit;
   or
      delay 3.0;
      --  do something
   end select;
end loop;