Hoe Visual Basic-subroutines op de achtergrond te draaien

Schrijver: Ellen Moore
Datum Van Creatie: 12 Januari 2021
Updatedatum: 22 November 2024
Anonim
Textbox Events to Run Subroutines with Excel VBA (Change, Enter, Exit, & MouseMove)
Video: Textbox Events to Run Subroutines with Excel VBA (Change, Enter, Exit, & MouseMove)

Inhoud

Wanneer een computerprogramma een lange subroutine moet uitvoeren, is het het beste om het als achtergrondproces uit te voeren. Een achtergrondproces heeft meestal niet dezelfde prioriteit als de voorgrond, dus het loopt langzamer. Subroutines kunnen het controleren en downloaden van updates, het downloaden van logbestanden of langdurige berekeningen omvatten.


routebeschrijving

Subroutines op de achtergrond zijn geweldig voor lange processen (Kutay Tanir / Photodisc / Getty Images)
  1. Voer Visual Basic uit en maak een nieuw project van het type Windows-formulier.

  2. Zet in de eerste regel van de bestandscode:

    "Importeert System.Threading"

    En voeg toe:

    "Dim t As Thread"

    naar het hoofdgedeelte van het formulier.

  3. Voeg een knop toe aan het formulier en verander de naam in "btnStart". Verander de tekst van de knop in "Start achtergrondproces".

  4. Voeg de volgende code toe aan de actie van de knop "btnStart":

    Private Sub btnStart_Click (ByVal-afzender als System.Object, ByVal en As System.EventArgs) Handles btnStart.Click t = New Thread (AddressOf Me.BackgroundProcess) t.Priority = ThreadPriority.BelowNormal 'Hierdoor krijgt de subroutine nog minder prioriteit t .Start () End Sub


    Deze routine start een proces op de achtergrond en geeft het een lagere prioriteit dan normaal, zodat het op een lagere snelheid draait en de navigatie-elementen van de gebruiker niet hindert.

  5. Voeg de volgende subroutine toe om op de achtergrond uit te voeren:

    Private Sub BackgroundProcess () 'Voer hier een lang proces uit, niet alleen een oneindige lus Do While True Loop End Sub

  6. Voeg de volgende code toe aan de afsluitmethode van het formulier om verder te gaan:

    Private Sub Form1_FormClosing (ByVal-afzender als object, ByVal en As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing t.Abort () End Sub

    Zonder deze routine wordt het programma niet automatisch afgesloten omdat het proces nog steeds loopt.

  7. Roteer het programma en klik op de knop op het formulier. Hiermee start u het proces dat op de achtergrond moet worden uitgevoerd.

tips

  • Zorg ervoor dat alles in de subroutine afzonderlijk op de achtergrond wordt uitgevoerd. Zonder meer geavanceerde verwerkingstechnieken te gebruiken, is het niet mogelijk om te weten wat er op enig moment gebeurt.

Wat je nodig hebt

  • Visual Basic