TTask.Subscribe (TitTask)
(Version 11) <source lang='delphi'>class function Subscribe(const iEventID:string; iAttributes:Array of string; iValues:Array of variant):boolean;</source>
Cette fonction abonne la classe de la tâche à un évènement.
La tâche sera exécutée à chaque fois que l'évènement est déclenché jusqu'au désabonnement de la tâche.
Paramètre | Usage |
---|---|
iEventID | Identifiant de l'évènement sur lequel abonner la tâche |
iAttributes | Un tableau de propriété de la tâche qui seront initialisée lorsque la tâche sera déclenchée |
iValues | Un tableau de valeur correspondant aux attributs initialisés |
Result | True si la tâche a été posté |
Exemple :
<source lang="delphi"> Type
// manage my job MyFacade = class(TitObject) class function GetMyJobActionEventId:string; class procedure CreateEvent(const iEvent:string; obj:TitObject); class procedure CreateEventWithParams(const iEvent:string; obj:TitObject; aParamsName:Array of string; aParamsValue:Array of variant); end;
class function MyFacade.GetMyJobActionEventId:string; begin
Result := 'task.myjob.myaction.%';
end;
class procedure MyFacade.CreateEvent(const iEvent:string; obj:TitObject); begin
MyFacade.CreateEventWithParams(iEvent, obj, [], []);
end;
class procedure MyFacade.CreateEventWithParams(const iEvent:string; obj:TitObject; aParamsName:Array of string; aParamsValue:Array of variant); var
aEvent:string; vParamsName : Array of string; vParamsValue : Array of variant;
begin
if Copy(iEvent,length(iEvent)-2,2)='.%' then aEvent := Copy(iEvent,1,length(iEvent)-2) else aEvent := iEvent;
vParamsName := aParamsName; vParamsValue := aParamsValue; if Assigned(obj) then TdbmEvent.CreateTaskEvent(Format('%s.%s',[aEvent,obj.InstanceOID]),vParamsName,vParamsValue) else TdbmEvent.CreateTaskEvent(aEvent,vParamsName,vParamsValue);
end;
//Procedure TestRegisterTasks; begin
// Register my task subscription MyTask.Subscribe(MyFacade.GetMyJobActionEventId,['unCode','unEntier'],['X',2]);
end;
//Procedure MyClass.foo(); begin
// generate an event to trigger the task myFacade.CreateEventWidthParams(MyFacade.GetMyJobActionEventId, thisObject, ['unCode','unEntier'],[unCode,unEntier]);
end; </source>
Voir aussi:
{{#if:Classe_tâche_(stereotype)|
{{#if:Classe_tâche_(stereotype)|— Classe_tâche_(stereotype) |}} — Développement DSM —
|
{{#if:|— [[{{{1}}}]] |}} — Développement DSM —
}}