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

    [VB.NET] GUI bloccata su download (era: "Perchè non lo fa?")

    Ciao,
    ho un programma che scarica un file report (personale) da un server.
    La sub si attiva al click di un button, ma dato che a volte è necessario anche un minuto per il download ed il programma resta "immobilizzato", ho messo all'inizio della sub:

    codice:
    ProgressBar1.Style = ProgressBarStyle.Marquee
    ToolStripStatusLabel1.Text = "Downloading... please wait"
    Try
       ...
    Ma non mi scrive niente, ma passa subito al download che esegue correttamente.
    Ho anche incluso all'avvio del form senza esito:

    codice:
     Control.CheckForIllegalCrossThreadCalls = False 'provato anche con True
    Ho provato anche a mettere Me.ToolStripStatusLabel1.Text ... ma niente. Non scrive.
    Se metto ToolStripStatusLabel1.Text ... dentro il Try mi salta tutto. Come mai?

    C'è una soluzione per far comparire la scritta e l'animazione della Pbar?
    Ultima modifica di Pamela72; 23-09-2015 a 18:06

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Prova ad inserire subito prima della Try una


    Application.DoEvents
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Grazie!!!
    Risolto 100%

    Grazie ancora x tutto
    Ultima modifica di Pamela72; 23-09-2015 a 19:25

  4. #4
    Senti,
    quel maledetto StatusProgressBar che sta sulla StatusBar crea casini...
    Se gli cambio lo style mi bocca i form, l'ho dovuto togliere, c'è per caso qualche opzione da cambiare nella StatusStrip??

  5. #5
    Vale il solito discorso... se devi fare operazioni lunghe senza bloccare la GUI o usi operazioni asincrone (metodo DownloadDataAsync/evento DownloadDataCompleted) o fai operazioni bloccanti in un thread separato (dal quale però non puoi toccare la GUI se non rientrando dal main thread tramite metodo Invoke). Tutti i giochini con la DoEvents sono estremamente limitati, perché comunque durante l'operazione bloccante l'event loop rimane fermo e non vengono ricevuti gli eventi nel frattempo.
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.