Slaapfunctie Visual Basic

Is er een eenvoudige slaapfunctie in Visual Basic zonder draad.

Iets vergelijkbaars bestaat in:
C: sleep(1);

We hebben ook deze code geprobeerd:

Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)
' pause for 5 seconds
Sleep 5000

…maar het werkte niet. Het gaf me deze fout:

PInvokeStackImbalance gedetecteerd
Bericht: een oproep naar de functie PInvoke
‘Ganzenbordspel!Ganzenbordspel.Spel::Slaap’
heeft de stapel uit balans gebracht. Dit is
waarschijnlijk omdat de beheerde PInvoke
handtekening komt niet overeen met de unmanaged
doel handtekening. Controleer of de
aanroepconventie en parameters van
de PInvoke-handtekening komt overeen met het doel
onbeheerde handtekening.


Antwoord 1, autoriteit 100%

Deze is veel gemakkelijker.

Threading.Thread.Sleep(3000)

Antwoord 2, autoriteit 49%

Aangezien je naar .NET vraagt, moet je de parameter wijzigen van Longin Integer. Het gehele getal van .NET is 32-bits. (Het geheel getal van klassieke VB was slechts 16 bits.)

Declare Sub Sleep Lib "kernel32.dll" (ByVal Milliseconds As Integer)

Echt, de beheerde methode is niet moeilijk…

System.Threading.Thread.CurrentThread.Sleep(5000)

Wees voorzichtig wanneer u dit doet. In een formuliertoepassing blokkeer je de berichtenpomp en wat niet, waardoor het lijkt alsof je programma is vastgelopen. Zelden is sleepeen goed idee.

Other episodes