Les Snippets

Connexion

[C#] Méthode SynchronizationContext.Post() + arguments + retour

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 06/10/2008 15:53:38 et initié par jmenfous [Liste]
Vue : 3261
Catégorie(s) : Trucs & Astuces, Class
Langages dispo pour ce code :
- C# 3.x



Langage : C# 3.x
Date ajout : 06/10/2008
Posté par jmenfous [Liste]

/// Classe utiliséé pour passer les arguements et retourner une valeur
public class ClassData
{
   public Boolean Retour{get;set;}
   public String Argument1{get;set;}
   public String Argument2{get;set;}
} 
public class Class1
{
    private SynchronizationContext _context;

    /// <summary>
    /// Constructeur
    /// </summary>
    public Class1()
    {
        // Mémorisation du context
        _context = SynchronizationContext.Current;
    }

    /// <summary>
    /// Lancement de la méthode hors context
    /// </summary>
    public Boolean DoWork()
    {
        // Test si on a un context (juste par prudence)
        if (_context != null)
        {
            ClassData data = new ClassData();
            // Appel de la méthode via le context
            _context.Post(Work, data);
            return data.Retour;
        }
    }

    /// <summary>
    /// Méthode que l'on souhaite proteger via SynchronizationContext
    /// </summary>
    /// <param name="data"></param>
    private void Work(Object obj)
    {
        ClassData data = obj as ClassData;
        // Faire le job
        data.Retour = true;
    }
}


Remarque :
Voici une méthode propre pour passager des arguments et une variable de retour dans le cadre de l'utilisation d'un SynchronizationContext. Pour ce faire, je passe un objet à la méthode Post. Celui-ci contient l'ensemble des variables (arguments et retour).

Snippets en rapport avec : Thread, Synchronizationcontext, Arguments, Retour



Codes sources en rapport avec : Thread, Synchronizationcontext, Arguments, Retour

{JAVA / J2EE} FENÊTRE BLOQUANTE
Pour créer une fenêtre d'information avec Swing, tout le monde connait JOptionPane. Cette classe per...

{JAVA / J2EE} JNI: THREAD NATIF & CONTEXTE JAVA
ATTENTION: Avant toute chose, ce code contient plus de code natif que de code java donc si le C vous...

{Visual Basic, VB6, VB.NET, VB 2005} CREER UN GIF ANIMÉ
Ce programme crée un gif animé grâce à la librairie Gif.Components.DLL. Son utilisation est très si...

{C# / C#.NET} AFFICHAGE DE VALEUR PROVENANT D'U THREAD DANS UN FORMULAIRE
Développer sous VS2010 Framework 4.0 Le but cette source est de montrer comment gérer les événem...

{JAVA / J2EE} SERVEUR D'OBJET ET EXEMPLE D UTILISATION : SERVER CHAT ET SON CLIENT
En fait je n ai pas trouver de client/serveur me convenant sur le site ;o) donc j ai fait le mien ;o...

{JAVA / J2EE} MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS DES MÉTHODES GET, PUT, HEAD ET DELETE
Le serveur fonctionne sur deux modes soit en MultiThread, Soit en Canaux. De plus, vous pouvez chang...

{Python} SOCKET MULTITHREAD SIMPLE
Voici la base pour créer des sockets multi-clients. Je n'est pas trouvé de source qui proposé dR...

{C / C++ / C++.NET} SOKOBAN EN C POUR DÉBUTANT (VERSION AMÉLIORÉE BASÉE SUR LE TUTORIEL DU SITE DU ZÉRO)
Bonjour, je vous propose ma première source en C. Je débute et me suis basé sur le tutoriel début...

{Javascript / DHTML} MODIFIER LE CONTENU D'UN DIV AVEC JAVASCRIPT
Pour les débutants en Javascript, exemple d'un script à plusieurs arguments permettant de modifier f...

{C / C++ / C++.NET} MINICHAT MULTI-CLIENT
Voila, un mini-chat multithread ,multi client en console, Je poste cet première source, pas pour mon...