Bonjour à tous,
j'essaye d'implémenter un background worker , pour avoir un sleep en tâche de fond (pour ne pas faire planter mon appli - "not responding").
J'ai une bouble while et j'aimerais vraiment attendre 10sec avant de passer à l'élément suivant. Mais cela ne fonctionne pas, le sleep(10000) n'est pas pris en compte... des idées ?
merci

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
31
32
33
34
35
BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += worker_DoWork;
 
 
                do
                {
 
                        returnCode = LaunchScript(FileName, strCommandMonitor);
 
                        // if success we break the loop
                        if (returnCode == 2)
                        {
                            break;
                        }
 
                        // wait 5sec
 
 
                        nbrAttempts++;
                        //timeout
 
 
                           // wait 10 sec with Background Worker
                        if (!(worker.IsBusy))
                        {
 
                            worker.RunWorkerAsync();
 
                        }
                }
 
 
 
 
                while (nbrAttempts < 10);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            MessageBox.Show("test");
            Thread.Sleep(10000);
        }