Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [VB.NET] System.Windows.Forms.Application.DoEvents()

    Salve, ho inserito nel mio form un bottone d'uscita dall'applicazione. Prima dell'end ho messo una istanza alla classe che mi permette di mandare un suono (quello di uscita da windows per capirci). Il fatto é che essendoci l'end non fa in tempo a suonare. Allora tra l'istanza alla classe e l'end ho messo System.Windows.Forms.Application.DoEvents(). Niente da fare, non cambia niente. Qualcuno può darmi un suggerimento? grazie.

  2. #2
    up

  3. #3
    up

  4. #4
    In primo luogo non bisogna mai usare l'istruzione End; secondariamente ti basta inserire una pausa nel programma prima dell'uscita con Thread.Sleep(500) (poi mi spieghi cosa c'entrava il doevents... :rollo: ).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    beh, pensavo che il doevents servisse a far terminare gli eventi ancora in corso prima di leggere la riga di codice successiva. Chiedo venia se mi sono sbagliata.
    Comunque un metodo simile a quello che mi hai suggerito tu (anche se il tuo é più pulito) l'avevo escogitato: fare un ciclo for molto lungo, e infatti funziona.
    Ma perché non si usa l'end? cosa si usa??

  6. #6
    Originariamente inviato da stellinaxxx
    beh, pensavo che il doevents servisse a far terminare gli eventi ancora in corso prima di leggere la riga di codice successiva. Chiedo venia se mi sono sbagliata.
    La DoEvents indica a VB di eseguire tutti i messaggi di Windows non ancora gestiti. L'esecuzione di un suono non c'entra.
    Comunque un metodo simile a quello che mi hai suggerito tu (anche se il tuo é più pulito) l'avevo escogitato: fare un ciclo for molto lungo, e infatti funziona.
    Ti consiglio di evitarlo: sprechi un sacco di cicli di CPU per niente (rallentando il PC) e non hai un controllo preciso su quanto tempo deve aspettare esattamente. Usa il mio metodo, che mette in pausa il thread corrente per 500 msec (o di più, cambia il numero a seconda della durata del suono).
    Ma perché non si usa l'end? cosa si usa??
    L'End è la chiusura del programma "a forza bruta"; normalmente non bisogna usare niente: il programma termina automaticamente quando non ci sono più form aperti (o quando termina la sub main).
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Sei stato molto esauriente, grazie

  8. #8
    Non c'è di che.
    Ah, puoi postare il codice con cui esegui il suono, che magari c'è un modo per fare sì che la funzione che esegue il suono ritorni solo quando il suono è già stato eseguito?
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.