Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    [VB.NET] Comando per fermarsi ed eseguire tutto?

    Salve a tutti
    Esiste un comando che faccia in modo che il programma si fermi e finisca tutto quello che stava facendo?
    Tipo DoEvents che c'è su VBA =S

    Non mi sono spiegato molto bene, spero capiate

  2. #2

  3. #3
    A me dice che non esiste
    Specifico: sto usando Visual Basic 2005 (Ho scritto .Net perchè in altri topic me l'avevano corretto)

  4. #4
    Prova con:
    codice:
    Application.DoEvents()
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Oltre all' Application.DoEvents() esiste la tecnica, sicuramente più impegnativa, del Multithreading. Se ti interessa guarda anche la seconda lezione.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  6. #6
    Grazie a MItaly e a ShaleN,
    Ho provato ma non ho risolto il problema.
    Esiste un comando per "far fare una pausa" al thread?

  7. #7
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Originariamente inviato da cepu96
    Esiste un comando per "far fare una pausa" al thread?
    Esiste il comando Threading.Thread.Sleep(milliseconds) che blocca il thread per tot millisecondi, ma comincio a non capire più cosa devi fare: posta un pò di codice o spiegati più chiaramente. Dire ...in modo che il programma si fermi e finisca tutto quello che stava facendo non significa un gran che: spiega esattamente quello che devi fare.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  8. #8
    Praticamente devo eseguire una routine molte volte, ma voglio che la esegua con un certo intervallo. Il codice non dice molto, ma lo posto

    codice:
            playTone(1046, 1)
            playTone(1175, 1)
            Application.DoEvents()
            playTone(1319, 1)
            Application.DoEvents()
            playTone(1046, 1)
            Application.DoEvents()
            playTone(1046, 1)
            Application.DoEvents()
            playTone(1175, 1)
            Application.DoEvents()
            playTone(1319, 1)
            Application.DoEvents()
            playTone(1046, 1)
            Application.DoEvents()
            playTone(1397, 1)
            Application.DoEvents()
            playTone(1568, 1)
            Application.DoEvents()
            playTone(1760, 1)
            Application.DoEvents()
            playTone(1397, 1)
            Application.DoEvents()
            playTone(1568, 1)
            Application.DoEvents()
            playTone(1760, 1)
            Application.DoEvents()
            playTone(1760, 1)
            Application.DoEvents()
            playTone(1976, 1)
            Application.DoEvents()
            playTone(1760, 1)
            Application.DoEvents()
            playTone(1568, 1)
            Application.DoEvents()
            playTone(1397, 1)
            Application.DoEvents()
            playTone(1175, 1)
            Application.DoEvents()
            playTone(1760, 1)
            Application.DoEvents()
            playTone(1976, 1)
            Application.DoEvents()
            playTone(1760, 1)
            Application.DoEvents()
            playTone(1568, 1)
            Application.DoEvents()
            playTone(1397, 1)
            Application.DoEvents()
            playTone(1175, 1)
            Application.DoEvents()

  9. #9
    Originariamente inviato da cepu96
    Praticamente devo eseguire una routine molte volte, ma voglio che la esegua con un certo intervallo. Il codice non dice molto, ma lo posto

    codice:
    ...
    Ma... un loop e un array no?

    Comunque se quei comandi bloccano il thread ti converrebbe lanciarli all'interno di un thread separato.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Io ti consiglio un approcio completamente diverso (come ha fatto MItaly): prima di tutto dichiari un'array di Short e lo riempi con i parametri che dovrai passare a PlayTone.
    codice:
    'Tre è un valore puramente indicativo, puoi mettere il valore che vuoi.
    Dim Parameters(3) as Short
    'Per riempire l'array puoi usare anche un For...Next, purchè i numeri inseriti abbiano un qualche
    'ordine che adesso mi sfugge.
    Parameters(0) = 1046
    Parameters(1) = 1175
    Parameters(2) = 1319
    Parameters(3) = 1046
    Poi con un ciclo For...Next richiami la routine e inserisci un tot di pausa:
    codice:
    For i As Short = 0 To Parameters.Length - 1
      PlayTone(Parameters(i), 1)
      Application.DoEvents() 'Processo gli eventi in coda
      Threading.Thread.Sleep(1000)
    Next
    Naturalmente se fai tutto in un thread esterno, l'Application.DoEvents() non serve.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

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.