我有一个关于 Ada 中“选择然后中止”语言结构的问题。我正在使用的任务类似于:
select
delay 1.0;
do something with the partial result;
then abort
loop
...
long calculation
...
entry call to other task;
...
end loop;
end select;
abort 分支中的代码是否可以在任何地方或仅在某些点(如延迟语句或入口调用)中止?
在我的程序中,abort 分支中的代码执行长计算,中止时部分计算结果仍然有用。但是如果代码可以在任何地方被中断,就会出现数据不一致的问题。
谢谢
最佳答案
中止可以发生在任何地方,除了中止延迟区域。 protected 操作是一个中止延迟区域,因此您可以将部分结果存储在 protected 对象中。
关于synchronization - Ada:选择然后中止语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16347516/