Vil sige at der er nogle forbedringer du kan gøre.
Din liste KRÆVER at du starter med laveste tidspunkt før du kommer til næste, for din counter tælles ikke op før den kommer til det tidspunkt den er nået til.
Hvis din liste er:
Alarms.add("12:29");
Alarms.add("12:19");
Alarms.add("12:39");
så vil du først læse efter 12:29 og ikke ligge mærke til 12:19 for den kommer ikke til den før du har været forbi 12:29.
Så i stedet for at have din counter, så løb altid hele listen igennem.
- updateBln = True
- For Each Timer In _time4Update
-
- If Timer = Now.ToString("HH:mm") And updateBln = True Then
-
-
- DoWork()
-
- updateBln = False
-
-
- End If
-
- Next
Din updateBln kan du sætte til en startværdi og hvis det er nødvendigt sætte den til den nye, det er mere optimalt fordi du ikke sætter den til det samme altid. Du har updateBln til "True" altid, medmindre den rammer en alarm, så du kunne udenfor loopet sætte den til True, og hvis den rammer en så sættes den til false.
Når det så er sagt så kan jeg ikke se hvad du bruger den til?
Mit eksempel i toppen baserer sig også på brug af List(Of DateTime) Alarms = new List(Of DateTime), fordi du så ikke skal specificere længden på dit array og kan tilføje så mange alarmer du ønsker uden at skulle rette i din kode.
Derudover synes jeg altid det er en god ide at typedefinere alt du kan komme til så fx "For Each Timer In _time4Update" skulle blive til "For Each Timer as DateTime In _time4Update".
Du kan tilføje option strict i toppen af dokumentet som sikrer du får compile-time fejl i stedet for run-time fejl.
Når jeg kommer hjem kan jeg godt give dig lidt flere optimeringer
Indlæg senest redigeret d. 23.09.2014 13:00 af Bruger #17215