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 commeainsi 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 #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 }le backgroundWorker est sensé appeler un performClick du transfert :
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(); }
Cependant il faut utiliser un delegate et des BeginInvoke, et je n'y comprend rien =\
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { BoutonTransfertAutomatique.PerformClick(); }
Quelqu'un aurait -il une idée?
Merci d'avance.
Partager