Archief - visual basic code herhalen vb.net

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

N1C39UY

Legacy Member
hallo, sorry als ik deze post hier verkeerd heb gezet :p ik ben nieuw op 9lives

mja, dus ik was een programma aan het schrijven. en moets code heel vaak herhalen, ik gebruikte hiervoor 4 timers die naar een sub linkten en in die sub zat de code. maar dat is niet snel genoeg aangezien de timers niet hun werkelijke snelheid halen. Wat is nu de snelste manier om code te herhalen? Ik heb al loops geprobeerd:

do while num.text < 1000
num.text=num.text+1
loop

dit werkte goed, maar als ik het bij een code deed die zich veel langer moest herhalen

do while num.text < 10000000
num.text=num.text+1
loop

bleef alles hangen. Het is dus nog de bedoeling dat ik de timer ook werkelijk zie tellen.
enig iedee hoe ik dit zou kunnen oplossen? alvast bedankt :D

Mordocai

Legacy Member
Misschien een FOR loop gebruiken ?

For number As Integer = 1 To 1000
Debug.Write(number.ToString & " ")
Next


Ben geen vb.net programmeur (ik gebruik C#), maar als je op voorhand een vast getal hebt voor een loop, lijkt me een FOR loop het beste. Dus ik heb effe de syntax opgezocht op msdn, om een voorbeeld te geven

N1C39UY

Legacy Member
het moet eigenlijk met een button gaan die het kan starten en stoppen. en ik heb een heel goede basis vb.net maar meer dan basis vind je ook niet echt op het internet. En bedankt voor het snelle antwoord :)

Moto

Legacy Member
c# - WinForm Application UI Hangs during Long-Running Operation - Stack Overflow

Probleem is dat die loop op uw standaard main UI thread loopt en die gewoon opeist totdat het gedaan is, ondertussen gaat de UI dan niet updaten

Zie stack overflow voor oplossing, de juiste manier is om dat process in een aparte thread te laten lopen en dan van daar uit de UI thread te gaan updaten
Nog beter is om de loop te laten lopen en op vaste intervallen met reactive extensions de status op te vragen

maar als ge het gewoon simpel wilt houden gewoon Application.DoEvents() doen om de form/UI te laten updaten
Application.DoEvents Method (System.Windows.Forms)

Is misschiens niet zo proper als de andere oplossingen maar het lost uw probleem wel op

N1C39UY

Legacy Member
ik heb een 2 uurtjes zitten zoeken hoe ik dit moet gebruiken, ik heb dit niet kunnen vinden. Ik heb wel voorbeelden in de links gevonden, ik heb geen idee hoe ik deze moet toepassen op bv die teller.

Ik ga nog verder zoeken :p als je een simpel voorbeeld zou kunnen posten zou het me heel veel helpen.
M.V.G.

Recipe4hate

Legacy Member
Moto said it all. Threading :-)
Je kan je thread dan in een een while(boolean) stoppen en met een druk op de knop die switch naar false zetten, zodat het "loopen" stopt.

Offtopic: je vindt echt wel meer dan de "basis" op het internet.

Moto

Legacy Member

N1C39UY

Legacy Member
was wel bedoeld op die application.DoEvents()
ik vond het alleen in c# en daar versta ik geen snars van :S

in ieder geval enorm hard bedankt allemaal.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan