我正在尝试制作一个整数数组,该数组可在任务中访问。with CPU=>CPUs(1)
不起作用,因为它根本不起任何表达式的作用。不过,普通整数也可以。
procedure Lab1 is
n: Integer:=222;
CPUs: array (1..3) of Integer := (1, 1, 1);
pri: array (1..3) of Integer := (1, 5, 10);
task T3
with CPU=>1+1
is
pragma Priority(pri(1));
pragma Task_Name ("T3");
end T3;
task body T3 is
int1:Integer:=generate_random_number(4)+n;
我读到这应该是可能的。
为任务提供处理器的表达式可以是动态的。
添加use System.Multiprocessors.CPU_Range;
给了我:
Lab1.ada:2:05:"系统"不可见Lab1.ada20:05:不可见声明在system.ads:37实验室.ada:22:11:警告:文件名做与单元名称不匹配,应为"lab1.adb"lab1.ada:30:14:的运算符类型"System.Multiprocessors.CPU_Range"不直接可见Lab1.ada:30:14:使用条款将使操作合法
我想我已经想好了。
with System.Multiprocessors;
use System.Multiprocessors;
procedure Lab1 is
n: Integer:=222;
CPUs: array (1..3) of CPU_Range := (1, 1, 1);
pri: array (1..3) of Integer := (1, 5, 10);
task T3
with CPU=>CPUs(1)
is