Archief - Sleep freezed mijn form

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.

TeddySo

Legacy Member
hey beste programmers

ik ben het een beetje kwijt met programmeren,

graag zou ik dus hebben dat mijn form een aantal X seconden wacht, maar dit mag het form niet freezen, kunnen jullie mij helpen?
ook zou ik de loop willen beindigen door op Stop te drukken, maar dit lukt me maar niet..

alvast bedankt.

hier is de code
Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ToolStripStatusLabel1.Text = DateTime.Now.ToShortTimeString()
    End Sub
    Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Integer)
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        MsgBox("Mining Bot is started")
        Do
            SendKeys.Send("-")
            Sleep(5000)
            'dit werkt wel maar laat mijn from freezen, en dit mag niet aangezien ik dan de loop of programma niet kan afsluiten
        Loop
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.Close()
        'deze button zou de loop moeten stoppen
    End Sub
End Class

azerty_2006

Legacy Member
Eerst en vooral is het beter om System.Threading.Thread.Sleep() te gebruiken, denk ik.

Uw form freezed omdat je GUI thread "slaapt". De gemakkelijkste manier om te bekomen wat jij wil is een simpele Timer gebruiken. Een andere manier is uw code verhuizen naar een nieuwe thread of backgroundworker.

etl_mx

Legacy Member
idd, gebruik een timer en hang daar een event aan dat om de zoveel seconden moet ticken.

H@voc_!nc.

Legacy Member
Backgroundworker component
Thread.Sleep(5000) in de work method
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