Bonjour,
Quelqu'un peut il m'expliquer rapidement comment Matlab gere les callbacks ? En d'autres termes, a chaque action utilisateur, les callbacks sont ils executes dans un thread qui lui est propre ou sont ils ajoutes en queue d'une file d'attente, puis execute dans un meme thread ? Lequel ? un "main thread" pour toute l'appli ? un thread par fenetre ?
Pourquoi cette question ?
Je développe des boite d'outils, qui sont en fait des objets (classdef). Chaque outils realisent une action particuliere souvent longue en temps d'execution. En outre, ils comportent un ensemble de fonction "set" qui agissent sur les parametres de l'outil et donc sur le fonctionnement de l'action. Or, je voudrais m'assurer que, pendant l'execution d'un outil, il ne soit pas possible d'en modifier les parametres ! Et je n'ai pas trouve d'outils d'exclusion genre mutexes ou sections critiques en Matlab.
Enfin, pendant la duree de vie d'application, les outils peuvent aussi bien etre parametres et lances par l'utilisateur a travers une interface qu'automatiquement par le programme, en reaction a un evenement reseau par exemple.
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 classdef Outil < handle <div style="margin-left:40px">properties <div style="margin-left:40px">prop1; prop2;</div>end methods <div style="margin-left:40px">function this = Outil () end function result = run () % execute l'outil en fonction de prop1 et prop2 % J'aimerais locker un mutex ici end function setProp1 (val) % Ici, j'aimerais bloquer l'execution si et tant que Outil.run s'execute end function setProp2 (val) % Ici, j'aimerais bloquer l'execution si et tant que Outil.run s'execute end</div>end</div>end
Partager