IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Difference Async et sans !


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 457
    Par défaut Difference Async et sans !
    Salut,
    dans la methode envoie mail,
    si j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    smtp = new SmtpClient("smtp.gmail.com");
                smtp.UseDefaultCredentials = false;
                smtp.EnableSsl = true;
                smtp.Port = 587;
    .................
     smtp.SendAsync(email, userState);
    qu'elle est la difference entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     smtp.SendAsync(email, userState);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    smtp.Send(....,....,...,...)
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Send() attends que l'opération se termine avant de retourner quelque chose.
    SendAsync() retourne tout de suite un IAsyncResult, l'opération se déroule en arrière plan et ton IAsyncResult te permet d'être notifié quand la méthode est finie.

  3. #3
    Membre très actif
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 457
    Par défaut
    moi je veux utiliser send mail , et je ne sais pas si l'ordinateur est entraine du fermer (shutdown , restart ,...) ou non ,
    qu'elle est la meilleure instruction pour envoyer le mail , et comment je peux sauvegarder qlq indication pourque si je revien du shutdown ou restart assurer que le mail est envoye ou non sans doute

    merci d'avance

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Par défaut
    Ya plein de solutions !
    A toi de voir laquelle tu veux utiliser.
    Une, je pense la plus simple à mettre en place et à comprendre est de logger l'état d'avancement de tes actions dans un fichier...

    L'exemple ci dessous est un peu naif, mais tu vois le principe !

    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
    24
    25
    26
    27
    28
    29
    30
     
            System.Threading.Tasks.Task EnvoyerMessageAsync()
            {
                return System.Threading.Tasks.Task.Factory.StartNew(() =>
                {
                        using (var sw = new System.IO.StreamWriter("monfichier"))
                        {
                            sw.WriteLine("Envoi du mail...");
                            // envoyer ton mail là de manière synchrone en utilisant Send() et pas SendAsync()
                            sw.WriteLine("Mail envoyé !");
                        }
                });
            }
     
            bool MailEnvoyé
            {
                get
                {
                    try
                    {
                        using (var sr = new System.IO.StreamReader("monfichier"))
                        {
                            if (sr.ReadToEnd() == "Envoi du mail...") return false;
     
                            return true;
                        }
                    }
                    catch { return false; }
                }
            }

    Ceci dit... faut pas logger ça salement dans un fichier bien sur
    Ya plein de solutions sympa genre xml ou sqlite pour faire ce genre de choses

  5. #5
    Membre très actif
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 457
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/10/2010, 09h28
  2. Différences entre Delphi et Visual Basic ?
    Par Anonymous dans le forum Débats sur le développement - Le Best Of
    Réponses: 75
    Dernier message: 30/03/2009, 20h09
  3. une requete ORDER BY sans difference entre maj et min
    Par skillipo dans le forum Hibernate
    Réponses: 4
    Dernier message: 07/03/2008, 14h57
  4. Réponses: 1
    Dernier message: 22/09/2005, 00h30
  5. [Kylix] Fiches sans bordure
    Par alex dans le forum EDI
    Réponses: 4
    Dernier message: 28/04/2002, 21h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo