Bonjour

Dans une application pour un client ftp, je dois faire en sorte que le transfert débute à minuit.

Dans cette optique, j'ai donc codé quelques chose comme
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
 #region Timer
 
            Heure = DateInstant.ToLongTimeString();
 
 
            Date2 = DateTime.Parse(Heure);
 
 
            Date3 = DateTime.Parse("00:00:00");
 
            System.TimeSpan Difference = Date3.Subtract(Date2);
 
 
 
            string DiffMilli1 = Difference.TotalMilliseconds.ToString();
 
 
             DiffMilli2 = int.Parse(DiffMilli1);
 
 
 
 
            Tim1.Enabled = true;
            Tim1.Interval = -DiffMilli2;
 
            Tim1.Elapsed += new System.Timers.ElapsedEventHandler(Tim1_Elapsed);
 
            #endregion
        }
ainsi que
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
private void Tim1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
                 {
 
                     //int DiffMilli4 = 86400000;
 
 
                 // Récuperation de la date et l'heure du jour
                    DateTime DateNow = DateTime.Now;
                    string crdate = DateNow.ToShortDateString();
 
 
                     // Execution code ...........................................
 
 
 
                             // récupération de la date courrante
                         DateTime DateNow2 = DateTime.Now;
 
                        // conversion date courante au format chaine de caractère STRING
                     string heure = DateNow2.ToLongTimeString();
 
                         // Parse permet de convertir la variable heure en format DateTime
                                     DateTime dt1 = new DateTime();
                                 dt1 = DateTime.Parse(heure);
 
                             DateTime dt2 = new DateTime();
                             dt2 = DateTime.Parse("00:00:00");
 
                         // TIMESPAN permet de soustraire 2 date
                        System.TimeSpan de = dt1.Subtract(dt2);
 
                    // milli contiendra la difference entre les 2 dates en millisecondes
                        string milli = de.TotalMilliseconds.ToString();
                        int  milli2 = int.Parse(milli);
 
                        // Toutes les 24H
                        int milli3 = 86400000 - milli2;
 
                        Tim1.Interval = milli3;
 
 
 
                   /*  // Toutes les 24H
                     int DiffMilli5 = 86400000 - DiffMilli4;
 
                     Tim1.Interval = DiffMilli5; */
 
                        backgroundWorker1.RunWorkerAsync();
                 }
le backgroundWorker est sensé appeler un performClick du transfert :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            BoutonTransfertAutomatique.PerformClick();
        }
Cependant il faut utiliser un delegate et des BeginInvoke, et je n'y comprend rien =\

Quelqu'un aurait -il une idée?

Merci d'avance.