我在亏损愿意花小时后。
受保护的类型声明:
protected type AdditionMachine is
procedure setTask (Item : in WorkerTask);
procedure getTask (Item : out WorkerTask);
procedure calculate;
private
machineType : String (1 .. 1) := "A";
job : workerTask;
end AdditionMachine;
任务:
task body SimpleTask1 is
Available : Natural := ADDITION_MACHINES;
Elements : array (1 .. ADDITION_MACHINES) of AdditionMachine;
begin
loop
select
when Available > 0 =>
accept getMachine (machine : out AdditionMachine) do
machine := Elements(Available);
Available := Available - 1;
end getMachine;
or
accept addMachine (machine : in AdditionMachine) do
Available := Available + 1;
Elements(Available) := machine;
end addMachine;
end select;
end loop;
end SimpleTask1;
在线路Elements(Available) := machine;
和machine := Elements(Available);
我得到“左assingment的手绝不仅限于类型”
我不知道如何解决这个问题,我发现没有,当我用Google搜索,谁能帮助?
编辑:现在我知道,受保护的种类是有限的,但如何做到保护对象池没有像上面?