none
Retour async quand il est terminé.

    Question

  • Bonjour,

    J’utilise cette fonction async pour lancer le chargement d’une base de données.

    J’utilise ce code :

       private void Form1_Load(object sender, EventArgs e)
        {
          
          var Path = new DirectoryInfo(Environment.CurrentDirectory).FullName;
          LibBD.Fonctions.AdresseBD = Path + @"\BD.data";
    
          new Action(async () => {await Task.Run(() => InitialiseBD());}).Invoke();
         
        }

    Est-ce qu’il est possible d’avoir un retour du style MessageBox, quand le thread est terminé ?

    Merci pour votre aide.

    Cordialement





    pascal

    mercredi 17 août 2016 16:17

Réponses

  • Bonjour :

            private async void Form1_Load(object sender, EventArgs e)
            {
                var Path = new DirectoryInfo(Environment.CurrentDirectory).FullName;
                //LibBD.Fonctions.AdresseBD = Path + @"\BD.data";
    
                Debug.WriteLine("Begin Load:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
    
                await InitialiseBDAsync();
    
                Debug.WriteLine("End Load:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
            }
    
            private Task InitialiseBDAsync()
            {
                return Task.Run(() =>
                {
                    Debug.WriteLine("InitialiseBDAsync:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
                });
    
            }


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Marqué comme réponse cilou14 samedi 20 août 2016 21:07
    jeudi 18 août 2016 12:33

Toutes les réponses

  • Bonjour :

            private async void Form1_Load(object sender, EventArgs e)
            {
                var Path = new DirectoryInfo(Environment.CurrentDirectory).FullName;
                //LibBD.Fonctions.AdresseBD = Path + @"\BD.data";
    
                Debug.WriteLine("Begin Load:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
    
                await InitialiseBDAsync();
    
                Debug.WriteLine("End Load:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
            }
    
            private Task InitialiseBDAsync()
            {
                return Task.Run(() =>
                {
                    Debug.WriteLine("InitialiseBDAsync:" + System.Threading.Thread.CurrentThread.ManagedThreadId);
                });
    
            }


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    • Marqué comme réponse cilou14 samedi 20 août 2016 21:07
    jeudi 18 août 2016 12:33
  • Merci pour votre réponse, c'est OK.

    Bien cordialement


    pascal


    • Modifié cilou14 samedi 20 août 2016 21:10
    samedi 20 août 2016 21:09