Huomautus: Tässä ohjeaiheessa kuvattu funktio, menetelmä, objekti tai ominaisuus ei ole käytössä, jos Microsoft Jet Expression Service toimii eristetyssä tilassa, mikä estää mahdollisesti vahingollisten lausekkeiden arvioimisen. Katso lisätietoja eristetystä tilasta ohjeen ”Eristetty tila” -kohdasta.
Saa aikaan sellaisen suorituksen, että käyttöjärjestelmä pystyy käsittelemään muita tapahtumia.
Syntaksi
DoEvents )
Huomautuksia
DoEvents-funktio palauttaa kokonaisluvun, joka edustaa avoinna olevien lomakkeiden määrää erillisissä Microsoft Visual Basic -versioissa, kuten Visual Basic Professional Edition. DoEvents palauttaa nollan kaikissa muissa sovelluksissa.
DoEvents siirtää hallinnan käyttöjärjestelmälle. Hallinta palautetaan, kun käyttöjärjestelmä on lopettanut jonossa olevien tapahtumien käsittelyn ja kun kaikki avaimet LähetäNäppäinkomennot-jonossa on lähetetty.
DoEvents on käytännöllisin yksinkertaisille asioille, se esimerkiksi antaa käyttäjän peruuttaa prosessin sen jälkeen, kun se on aloitettu, esimerkiksi tiedoston haun. Pitkäkestoisten prosessien kohdalla prosessorin käyttö tapahtuu paremmin käyttämällä ajastinta tai delegoimalla tehtävä ActiveX EXE-komponentille. Jälkimmäisessä tapauksessa tehtävä voi jatkua täysin itsenäisesti sovelluksesta riippumatta, ja käyttöjärjestelmä hoitaa moniajon ja ajan jaksotuksen.
Aina, kun hetkellisesti käytät prosessoria tapahtuman toimenpiteen aikana, varmista, että toiminto ei suoriteta uudelleen koodin eri osasta ennen kuin ensimmäinen kutsu palautuu; tämä saattaa aiheuttaa odottamattomia tuloksia. Lisäksi älä käytä DoEvents-toimintoa, jos muut sovellukset voivat mahdollisesti olla vuorovaikutuksessa toimintosarjan kanssa odottamattomia tavalla sinä aikana, kun olet luovuttanut hallinnan.
Esimerkki
Huomautus: Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Jos haluat lisätietoja VBA:n käytöstä, valitse Sovelluskehittäjän opasHaku-kentän viereisestä luettelosta ja anna yksi tai useampi hakuehto hakukenttään.
Tässä esimerkissä DoEvents-funktiota käytetään toteuttamaan siirto käyttöjärjestelmään kerran silmukan jokaisen 1000 iteraation myötä. DoEvents palauttaa tietyn määrän avoimia Visual Basic -lomakkeita, mutta vain, jos isäntäsovellus on Visual Basic.
' Create a variable to hold number of
' Visual Basic forms loaded and visible. Dim I, OpenForms For I = 1 To 150000 ' Start loop. If I Mod 1000 = 0 Then ' If loop has repeated ' 1000 times. OpenForms = DoEvents ' Yield to operating system. End If Next I ' Increment loop counter.