La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Programmation événementielle Ing4 SI Cyril CAGNET Cyril CAGNET Mail: Mail: Déroulement des.

Présentations similaires


Présentation au sujet: "1 Programmation événementielle Ing4 SI Cyril CAGNET Cyril CAGNET Mail: Mail: Déroulement des."— Transcription de la présentation:

1 1 Programmation événementielle Ing4 SI Cyril CAGNET Cyril CAGNET Mail: Mail: Déroulement des séances de cours: Déroulement des séances de cours: 4 cours de 3 Heures. 4 cours de 3 Heures. 4 tp de 3 Heures. 4 tp de 3 Heures. 1 Examen sous forme de QCM questions ouvertes. 1 Examen sous forme de QCM questions ouvertes.

2 2 L’Initiative.net

3 Historique des version du framework 1.0 version beta. 1.0 version beta. 1.1 premiere version officielle, fourni avec visual studio premiere version officielle, fourni avec visual studio Integration des composants de Vista WPF, WCF, WF, card, … 3.0 Integration des composants de Vista WPF, WCF, WF, card, … 3.5 Integration de link 3.5 Integration de link 3

4 4 Volonté de créer un environnement de développement: Cohérent, Cohérent, Portable, Portable, Sécurisé, Sécurisé, Extensible. Extensible.

5 5 Bibliographie

6 6 Le.Net Framework Deux principaux composants: Le CLR (Comon Language Runtime). Le CLR (Comon Language Runtime). Machine virtuelle: Gestion mémoire, compilation du code, gestion des threads, … Machine virtuelle: Gestion mémoire, compilation du code, gestion des threads, … La FCL (Framework Class Library). La FCL (Framework Class Library). Bibliothèque de classe: Composants graphiques, Accès aux fichiers XML, Composants web et asp, … Bibliothèque de classe: Composants graphiques, Accès aux fichiers XML, Composants web et asp, … Une partie du CLR et de la FCL fut portée comme standard par l’ECMA (European Computer Manufacturers Association) le 13 décenmbre 2001.

7 7 Fonctionnalités apportées par le couple CLR/FCL Modèle de programmation cohérent et simplifié. Modèle de programmation cohérent et simplifié. Garantie d’exécution. Garantie d’exécution. Déploiement simplifié. Déploiement simplifié. Extension aux plates-formes. Extension aux plates-formes. Utilisation de types forts (CTS Common Type System) Utilisation de types forts (CTS Common Type System) Ré-utilisation du code simplifié. Ré-utilisation du code simplifié. Objets auto descriptifs. Objets auto descriptifs. Vérification de la fiabilité des types. Vérification de la fiabilité des types. Rapports d’échec par exceptions. Rapports d’échec par exceptions. Sécurité d’exécution. Sécurité d’exécution. Interopérabilité. Interopérabilité.

8 8 Interaction entre CLR/CTS et CLS Le CLS (Common Language Specification) sert à assurer la compatibilité entre les différents langage.Net. Le CLS (Common Language Specification) sert à assurer la compatibilité entre les différents langage.Net. Il s’agit des spécifications minimum que doivent prendre en charge les compilateurs.Net. Il s’agit des spécifications minimum que doivent prendre en charge les compilateurs.Net. CLS est un sous ensemble de CLS est un sous ensemble deCLR/CTS

9 9 Le langage MSIL MSIL OU IL (Microsoft Intermediate Language). MSIL OU IL (Microsoft Intermediate Language). Langage de bas niveau conçu pour être interprété par le CLR. Langage de bas niveau conçu pour être interprété par le CLR. Tous les fichiers compilés génèrent du code IL. Tous les fichiers compilés génèrent du code IL. Le code natif n’est créé qu’à l’exécution du code IL. Le code natif n’est créé qu’à l’exécution du code IL.

10 10 Les Assemblys Les assemblys sont les blocs de construction des applications.NET Framework, ils forment l'unité fondamentale: De déploiement, De déploiement, de contrôle de version, de contrôle de version, de ré-utilisation, de ré-utilisation, de portée d'activation et de portée d'activation et d'autorisation de sécurité. d'autorisation de sécurité. Un assembly est une collection de types et de ressources qui est générée pour fonctionner ensemble et former une unité logique de fonctionnalités. Un assembly fournit au CLR les informations dont il a besoin pour connaître les implémentations des types. Pour le runtime, un type n'existe pas en dehors du contexte d'un assembly.

11 11 Structures d’Assemblys Mono et Multi Fichier. Assembly mono fichier Assembly Multi Fichier

12 12 Etapes de compilation/exécution

13 13 Les Types Tous les types sont dérivés de System.Object. Tous les types sont dérivés de System.Object. Chaque objet de chaque type dispose donc d’un ensemble minimal de méthodes définies dans Object. Chaque objet de chaque type dispose donc d’un ensemble minimal de méthodes définies dans Object. Equals Equals GetHashCode GetHashCode ToString ToString GetType GetType MemberwiseClone MemberwiseClone Finalize Finalize

14 14 Les types Primitifs Se sont les types les plus courants pour lesquels des alias ont été écrit pour simplifier la lecture et l’écriture du code. Se sont les types les plus courants pour lesquels des alias ont été écrit pour simplifier la lecture et l’écriture du code. System.Int32 i = new System.Int32(); System.Int32 i = new System.Int32(); Int i = 0; Int i = 0; Attention: tous les types primitifs de C# ne sont pas forcement Compatibles avec le CLS. Attention: tous les types primitifs de C# ne sont pas forcement Compatibles avec le CLS.

15 15 Liste des Types Primitifs C# Type primitif Type FCL Compatible SbyteSystem.SByteNon ByteSystem.ByteOui ShortSystem.Int16Oui UshortSystem.Uint16Non IntSystem.Int32Oui UintSystem.Int32Non LongSystem.Int64Oui UlongSystem.Uint64Non CharSystem.CharOui FloatSystem.SingleOui DoubleSystem.DoubleOui DecimalSystem.DecimalOui ObjectSystem.ObjectOui StringSystem.StringOui BoolSystem.Booleanoui

16 16 Types références Les types références sont toujours alloués par l’opérateur new qui retourne l’adresse mémoire de l’objet. Les types références sont toujours alloués par l’opérateur new qui retourne l’adresse mémoire de l’objet. La mémoire doit être allouée dans le heap managé. La mémoire doit être allouée dans le heap managé. Il est associé, à chaque objet alloué dans le heap, plus des membres additionnels de marge qui sont initialisés. Il est associé, à chaque objet alloué dans le heap, plus des membres additionnels de marge qui sont initialisés. L’allocation d’un objet dans le heap peut forcer le nettoyage de la mémoire. L’allocation d’un objet dans le heap peut forcer le nettoyage de la mémoire. Les objets de type classe sont toujours par référence.

17 17 Les types par valeurs Les types par valeurs sont généralement alloués dans la pile du thread. Les types par valeurs sont généralement alloués dans la pile du thread. La variable de l’instance ne contient pas de pointeur sur une valeur mais la valeur elle-même. La variable de l’instance ne contient pas de pointeur sur une valeur mais la valeur elle-même. Les instances de type valeur ne sont pas sous le contrôle du garbage collector. Les instances de type valeur ne sont pas sous le contrôle du garbage collector. Les objets de type struct et enum sont des objets de type valeur, et sont dérivés System.ValueType. Le passage d’un type valeur en paramètre oblige le CLR à faire une copie de la valeur.

18 18 Choisir entre un type référence ou valeur Utiliser les types par valeur ssi toutes les déclarations suivantes sont vérifiées: Utiliser les types par valeur ssi toutes les déclarations suivantes sont vérifiées: Le type agit comme un type primitif. Le type agit comme un type primitif. Le type ne nécessite pas d’héritage d’un autre type. Le type ne nécessite pas d’héritage d’un autre type. Aucun autre type n’est dérivé de ce type. Aucun autre type n’est dérivé de ce type. Les instances de ce type ne sont pas fréquemment fournies en paramètres à une méthode. Les instances de ce type ne sont pas fréquemment fournies en paramètres à une méthode. Les instances de ce type ne sont pas fréquemment retournées par des méthodes. Les instances de ce type ne sont pas fréquemment retournées par des méthodes. Les instances de ce type ne sont pas fréquemment utilisées dans des ArrayList, Hashtable,… Les instances de ce type ne sont pas fréquemment utilisées dans des ArrayList, Hashtable,…

19 19 Compartimentation et décompartimentation La compartimentation permet de transformer un objet de type valeur en type référence. La compartimentation permet de transformer un objet de type valeur en type référence. Allocation dans le heap managé de l’espace nécessaire pour l’objet valeur + la marge additionnelle. Allocation dans le heap managé de l’espace nécessaire pour l’objet valeur + la marge additionnelle. Copie des champs du type valeur dans la mémoire du heap. Copie des champs du type valeur dans la mémoire du heap. Renvoie de l’adresse de l’objet. Renvoie de l’adresse de l’objet. Le compilateur C# ce charge de générer automatiquement le code de compartimentation. La décompartimentation est l’inverse de la compartimentation, mais elle est moins coûteuse car il s’agit uniquement de recopier les champs de la référence dans la pile. La décompartimentation est l’inverse de la compartimentation, mais elle est moins coûteuse car il s’agit uniquement de recopier les champs de la référence dans la pile.

20 20 Les membre de types La conception de types avec les différents types de membres qui peuvent être utilisés. La conception de types avec les différents types de membres qui peuvent être utilisés. Constantes Constantes Champs Champs Méthodes Méthodes Constructeurs d’instance Constructeurs d’instance Constructeurs de types Constructeurs de types Propriétés Propriétés Evénements Evénements Types Types

21 21 Constantes La constante est un symbole qui identifie une valeur qui ne change jamais. La constante est un symbole qui identifie une valeur qui ne change jamais. Les constantes sont utilisées pour rendre plus lisible le code. Les constantes sont utilisées pour rendre plus lisible le code. Une constante ne peut prendre qu’un type de type primitif. Une constante ne peut prendre qu’un type de type primitif. Le compilateur remplace le symbole par sa valeur au moment de la compilation. Le compilateur remplace le symbole par sa valeur au moment de la compilation. Une constante prend une valeur dès sa déclaration. Une constante prend une valeur dès sa déclaration. Attention: L’utilisation des constantes doit se limiter au sein de l’assembly, sinon cela risque de causer des effets de bords conséquents. Attention: L’utilisation des constantes doit se limiter au sein de l’assembly, sinon cela risque de causer des effets de bords conséquents.

22 22 Champs Un champ est une donnée qui contient une instance de valeur ou de référence. Un champ est une donnée qui contient une instance de valeur ou de référence. Le CLR permet l’utilisation de champs statiques et non statiques. Le CLR permet l’utilisation de champs statiques et non statiques. L’utilisation des champs statiques résout le problème rencontré avec les constantes. L’utilisation des champs statiques résout le problème rencontré avec les constantes. Un champ peut être de n’importe quel type. Un champ peut être de n’importe quel type. Le CLR prend en charge les champs en lecture seul. Le CLR prend en charge les champs en lecture seul.

23 23 Les méthodes Types de méthodes: Types de méthodes: Constructeurs d’instances. Constructeurs d’instances. Constructeurs de types. Constructeurs de types. Méthodes de surcharge d’opérateur. Méthodes de surcharge d’opérateur. Passage de paramètres: Passage de paramètres: Passage par référence. Passage par référence. Nombre de paramètres variable. Nombre de paramètres variable.

24 24 Constructeurs d’instance Méthode qui permet l’initialisation d’une instance. Méthode qui permet l’initialisation d’une instance. Tous les champs non initialisés prennent une valeur 0 ou null. Tous les champs non initialisés prennent une valeur 0 ou null. Au moins une méthode constructeur doit être définie. Celle-ci peut être privée. Au moins une méthode constructeur doit être définie. Celle-ci peut être privée. La majorité des compilateurs crée un constructeur public sans paramètres pour les types références (classe) si aucun constructeur n’est défini. La majorité des compilateurs crée un constructeur public sans paramètres pour les types références (classe) si aucun constructeur n’est défini. Un type valeur ne peut définir de constructeur sans arguments. Un type valeur ne peut définir de constructeur sans arguments.

25 25 Constructeurs de types Les constructeurs de types sont des constructeurs statiques (aussi nommés constructeurs de classes). Les constructeurs de types sont des constructeurs statiques (aussi nommés constructeurs de classes). Les constructeurs de types ne prennent jamais d’arguments. Les constructeurs de types ne prennent jamais d’arguments. Les constructeurs de types sont invoqués dés le premier accès au type. Les constructeurs de types sont invoqués dés le premier accès au type. Le constructeur de type ne peut être invoqué qu’une seule fois. Le constructeur de type ne peut être invoqué qu’une seule fois.

26 26 Passage de paramètres Par défaut le CLR ne prend en compte que le passage de paramètres par valeur. Par défaut le CLR ne prend en compte que le passage de paramètres par valeur. Dans le cas du passage d’un type par référence, le CLR prend en fait la valeur de l’adresse. Dans le cas du passage d’un type par référence, le CLR prend en fait la valeur de l’adresse. L’utilisation des mots clés ref et out indique au CLR que les paramètres sont passés par références. L’utilisation des mots clés ref et out indique au CLR que les paramètres sont passés par références.

27 27 Passage d’un nombre variable de paramètre Utilisé pour des méthodes pour lesquelles on ne peut définir un nombre fixe de paramètres à passer. Utilisé pour des méthodes pour lesquelles on ne peut définir un nombre fixe de paramètres à passer. Par exemple System.String fournit des méthodes qui permettent de concaténer un nombre aléatoire de chaînes de caractères. Par exemple System.String fournit des méthodes qui permettent de concaténer un nombre aléatoire de chaînes de caractères. Pour spécifier au CLR qu’une méthode accepte un nombre variable de paramètres, il faut utiliser le mot clé params dans la définition de la méthode. Pour spécifier au CLR qu’une méthode accepte un nombre variable de paramètres, il faut utiliser le mot clé params dans la définition de la méthode. Params est obligatoirement appliqué au dernier paramètre de la méthode. Params est obligatoirement appliqué au dernier paramètre de la méthode.

28 28 Propriétés Les propriétés permettent au code source d’invoquer une méthode avec une syntaxe simplifiée. Les propriétés permettent au code source d’invoquer une méthode avec une syntaxe simplifiée. Les propriétés permettent de contrôler les accès aux variables. Les propriétés permettent de contrôler les accès aux variables. Il existe 2 types de propriétés: Il existe 2 types de propriétés: Celles sans paramètres qui sont nommées les propriétés. Celles sans paramètres qui sont nommées les propriétés. Celles avec paramètres qui sont nommées les indexeurs en C#; Celles avec paramètres qui sont nommées les indexeurs en C#;

29 29 Les Indexeurs Une classe peut définir plusieurs indexeurs s’ils ont des prototypes différents. Une classe peut définir plusieurs indexeurs s’ils ont des prototypes différents. Utiles pour contrôler le type d’un objet lors d’une affectation. Utiles pour contrôler le type d’un objet lors d’une affectation. Assimilés à des tableaux de propriétés permettant l’accès aux champs d’une classe par index et non par nom.

30 30 Enumérations et drapeaux Rend le code plus facile à maintenir. Rend le code plus facile à maintenir. Rend le code plus lisible. Rend le code plus lisible. Prise en charge par l’intelliSense de VisualStudio. Prise en charge par l’intelliSense de VisualStudio. Permettent de spécifier une liste de nom fixe au type de l’énumération et de les affecter à un entier.

31 31 Héritage en c# Pas d’héritage multiple en C#. Pas d’héritage multiple en C#. Seule les classes bénéficient de l’héritage. Seule les classes bénéficient de l’héritage. Toute classe hérite au moins de Object. Toute classe hérite au moins de Object. L’héritage est un mécanisme qui permet d’entendre et d’enrichir des éléments existants afin de les rendre mieux adaptées à un problème donné.

32 32 Surcharge de méthodes Seule les méthodes ‘virtual’ des classes mère peuvent être Surchargées. Seule les méthodes ‘virtual’ des classes mère peuvent être Surchargées. La méthode de surcharge doit avoir le même nom et prototype que la méthode mère. La méthode de surcharge doit avoir le même nom et prototype que la méthode mère. La méthode de surcharge doit être déclarée comme ‘override’. La méthode de surcharge doit être déclarée comme ‘override’. Les éléments statiques ne peuvent pas être surchargés. Les éléments statiques ne peuvent pas être surchargés. La surcharge de méthode est utilisée pour modifier le comportement par défaut d’une méthode définie dans une classe mère.

33 33 Modificateurs d’accessibilité Tous les éléments sont définis avec des modificateurs d’accessibilités. Tous les éléments sont définis avec des modificateurs d’accessibilités. Si aucun modificateur n’est précisé l’élément est défini comme ‘privé’. Si aucun modificateur n’est précisé l’élément est défini comme ‘privé’. Les modificateurs disponibles sont: Les modificateurs disponibles sont: Virtual,// Indique que l’élément surcharge une définition de la classe mère. Virtual,// Indique que l’élément surcharge une définition de la classe mère. Override,// Indique que l’élément peut être surchargé dans une classe fille. Override,// Indique que l’élément peut être surchargé dans une classe fille. Abstract,// Seul le prototype de l’élément est définie il doit être surchargé dans la classe fille. Abstract,// Seul le prototype de l’élément est définie il doit être surchargé dans la classe fille. Sealed,// Interdit la surcharge de l’élément (par défaut pour les méthodes, mais peut être utilisé dans la surcharge d’une méthode virtual). Sealed,// Interdit la surcharge de l’élément (par défaut pour les méthodes, mais peut être utilisé dans la surcharge d’une méthode virtual). Public,// L’élément est accessible de partout. Public,// L’élément est accessible de partout. Private,// L’élément n’est accessible qu’en interne du type dans lequel il est définit (par défaut). Private,// L’élément n’est accessible qu’en interne du type dans lequel il est définit (par défaut). Internal,// Accessible uniquement depuis le même assemblage que l’élément. Internal,// Accessible uniquement depuis le même assemblage que l’élément. Protected.// Accessible uniquement au type qui le défini mais aussi aux types dérivés. Protected.// Accessible uniquement au type qui le défini mais aussi aux types dérivés. Certain modificateur ne s’utilise pas avec tout les types. Certain modificateur ne s’utilise pas avec tout les types. La modification de l’accessibilité permet de définir le comportement et la porté d’un élément avec son environnement (dans la classe ou dans les classes dérivées)

34 34 Interfaces Contrairement aux classes abstraites les interfaces ne peuvent définir le corps d’un élément. Contrairement aux classes abstraites les interfaces ne peuvent définir le corps d’un élément. Une interface n’a pas de constructeur. Une interface n’a pas de constructeur. Les membres d’une interface sont toujours public. Les membres d’une interface sont toujours public. Ne contient que des signatures (prototypes) de ses membres. Ne contient que des signatures (prototypes) de ses membres. Par convention les noms des interfaces commences par un ‘I’ ex:IEnumerable. Par convention les noms des interfaces commences par un ‘I’ ex:IEnumerable. Une classe peut hériter de plusieurs interfaces. Une classe peut hériter de plusieurs interfaces. Les interfaces sont utilisées pour palier le fait que C# ne gère pas l’héritage multiple. Une interface décrit un ‘contrat’ que doivent remplir les classes qui héritent de l’interface. Le contrat défini un ensemble de prototype que doit obligatoirement implémenter la classe qui utilise l’interface.

35 35 destructeurs La classe doit implementer la methode Dispose(). La classe doit implementer la methode Dispose(). La methode Dispose doit etre appelee explicitement par le code client. La methode Dispose doit etre appelee explicitement par le code client. IL faut implementer un destructuteur pour le code non manage. IL faut implementer un destructuteur pour le code non manage. IL est possible de forcer le GC avec la methode GC.Collect(). IL est possible de forcer le GC avec la methode GC.Collect(). L’operation de destruction des objets est normalement a la charge du ramasse miettes. Mais elle peut etre forcee par developpeur pour liberer une importante zone memoire inutilisee.

36 36 Exceptions Toutes les Exceptions sont dérivées de la classe System.Exception. Toutes les Exceptions sont dérivées de la classe System.Exception. Par convention les classes derivees de System.Exception ce nommes MaClasseException. Par convention les classes derivees de System.Exception ce nommes MaClasseException. Il existe deux domaines d’utilisation des exceptions Il existe deux domaines d’utilisation des exceptions La levee d’une exception La levee d’une exception Et la capture d’une exception Et la capture d’une exception Permet de remettre de systeme dans un etat stable. Permet de remettre de systeme dans un etat stable. Une exception levee ne peut pas etre ignoree sans mettre fin a l’application. Une exception levee ne peut pas etre ignoree sans mettre fin a l’application. Les exceptions sont un mécanisme utilis é pour garantir au d é veloppeur, que tous comportements anormaux du code sera signal é.

37 37 La levee d’une exception Lever une exception signifie que votre programme a effectue une operation non autorisee. Lever une exception signifie que votre programme a effectue une operation non autorisee. Le programmeur peut declancher la levee d’une exception (throw). Le programmeur peut declancher la levee d’une exception (throw). Il est possible de definir un type personnalise d’exception en creant une nouvelle classe derivee de System.Exception Il est possible de definir un type personnalise d’exception en creant une nouvelle classe derivee de System.Exception

38 38 la capture d’une exception Pour traiter une exception il faut la capturer. Pour traiter une exception il faut la capturer. La capture d’une exception s’effectue dans un bloque try. La capture d’une exception s’effectue dans un bloque try. Et le traitement dans un bloque catch Et le traitement dans un bloque catch Il peut y avoir plusieurs bloques catch successif. Il peut y avoir plusieurs bloques catch successif.

39 39 Délégués Un délégué peut pointer sur une ou plusieurs fonctions. Un délégué peut pointer sur une ou plusieurs fonctions. Une fonction peut être ajoutée et supprimée à un délégué. Une fonction peut être ajoutée et supprimée à un délégué. Les délégués sont utilisés par certaines méthodes de classes pour définir le comportement utiliser. (méthodes de tries) Les délégués sont utilisés par certaines méthodes de classes pour définir le comportement utiliser. (méthodes de tries) Les délégués sont utilisés pour attacher un comportement à un événement. Les délégués sont utilisés pour attacher un comportement à un événement. Les délégués peuvent être vus comme des pointeurs de fonctions. Ils permettent ainsi de définir dynamiquement le comportement de l’application. Pour déclarer un délégué il suffit de spécifier son prototype puis de l’instancier au même titre qu’une classe.

40 40 Evénements Les événements sont découpés en deux parties: La partie coté client contient le code répondant à l’émission de l’événement. La partie coté composant qui se charge de déclancher l’événement. Il est possible de s’abonner plusieurs fois à un même événement. Les événements permettent une indépendance entre le code du composant et le code de l’application. Les événements sont le moyen habituel par lequel une application est prévenue lorsqu’une action ou un fait intéressant se produit.

41 41 Directives processeur #define//Permet de définir un symbole (s’utilise avec #if) #define//Permet de définir un symbole (s’utilise avec #if) #undef// effet inverse de #define #undef// effet inverse de #define #if// Si le symbole existe le code sera compilé #if// Si le symbole existe le code sera compilé #elif// sinon il n’apparaîtra pas dans le code #elif// sinon il n’apparaîtra pas dans le code #else// exécutable comme s’il n’avait pas été écrit. #else// exécutable comme s’il n’avait pas été écrit. #endif// Indique la fin d’un bloque #if #elif #else #endif// Indique la fin d’un bloque #if #elif #else #warning// Lorsque le compilateur lit cette ligne il va générer un warning dans la console de sortie. #warning// Lorsque le compilateur lit cette ligne il va générer un warning dans la console de sortie. #error// Comme le warning mais génère une erreur de compilation. #error// Comme le warning mais génère une erreur de compilation. #region// Permet dans VisualStudio de définir une zone de #region// Permet dans VisualStudio de définir une zone de #endregion//code pouvant être réduite, simplifiant du même coups la lisibilité du code source. #endregion//code pouvant être réduite, simplifiant du même coups la lisibilité du code source. #line// Permet de modifier les informations retournée par le compilateur en cas de warning et d erreur. #line// Permet de modifier les informations retournée par le compilateur en cas de warning et d erreur. Les directives du pré processeur n’interviennent pas dans le comportement du code exécutable, mais affectent le processus de compilation. Cette technique est utilisée pour générer a partir d’un même code source différente version du programme.

42 42 Le multi Threading Permet l’exécution ‘simultanée’ de plusieurs séquences de code. Permet l’exécution ‘simultanée’ de plusieurs séquences de code. Windows gère le multitâche dit préemptif. Windows gère le multitâche dit préemptif. Le framework offre des possibilités de contrôles des threads: Le framework offre des possibilités de contrôles des threads: Création/ démarrage/ arrêt/ suspension. Création/ démarrage/ arrêt/ suspension. Gestion des priorités (5 niveaux définis dans l’enumération ThreadPriority). Gestion des priorités (5 niveaux définis dans l’enumération ThreadPriority). Processus de synchronisation (utilisation du mot clé ‘lock’). Processus de synchronisation (utilisation du mot clé ‘lock’). Un thread est une séquence d’exécution dans un programme. Un même programme peut utiliser plusieurs threads mais un seul thread est créé au lancement du programme par la méthode main. Il est à la charge de développeur de gérer les threads supplémentaires.

43 43 Accès à la base de registre Les classes utilisant la base de registre sont situées dans le namespace ‘Microsoft.Win32’. Les classes utilisant la base de registre sont situées dans le namespace ‘Microsoft.Win32’. Le framework donne accès au registre au même titre que ‘regedit’ et ‘regedt32’. Le framework donne accès au registre au même titre que ‘regedit’ et ‘regedt32’. L’utilisation de.net a tendance à réduire l’accès au registre (déploiement Xcopy). L’utilisation de.net a tendance à réduire l’accès au registre (déploiement Xcopy). Il existe 7 ruches de registres (accessible par la classe ‘Registry’). Il existe 7 ruches de registres (accessible par la classe ‘Registry’). La base de registre est le point centrale de toutes les informations liées à la configuration de Windows, aux préférences utilisateurs et configuration logiciel.


Télécharger ppt "1 Programmation événementielle Ing4 SI Cyril CAGNET Cyril CAGNET Mail: Mail: Déroulement des."

Présentations similaires


Annonces Google