我正在尝试创建一个Integers数组,可以在任务中访问它。
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;
我读过that它应该是可能的。
为处理程序提供任务的表达式可以是动态的。
添加use System.Multiprocessors.CPU_Range;
告诉我:
Lab1.ada:20:05:“系统”不可见Lab1.ada:20:05:不可见 system.ads:37上的声明:Lab1.ada:22:11:警告:文件名 不匹配单位名称,应为“lab1.adb”Lab1.ada:30:14:运算符为 类型“System.Multiprocessors.CPU_Range”不是直接可见的 Lab1.ada:30:14:使用条款会使操作合法化
答案 0 :(得分:0)
我想我认为了。
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