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

    [C#]Problema con BackgroundWorker

    Ciao,
    nella mia applicazione (che crittografa file) uso un BackgroundWorker per eseguire questa operazione, in modo da non bloccare l'interfaccia durante l'esecuzione, che può essere molto lunga. Infatti così accade, ma alla fine del processo si blocca lo stesso, per poi tornare normale dopo qualche decina di secondi, anche se tutto va a buon fine.
    Avete un'idea del perchè?

    Grazie
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970

    Re: [C#]Problema con BackgroundWorker

    Originariamente inviato da furbostandby
    Avete un'idea del perchè?
    Assolutamente no, non possiamo immaginare il codice che hai scritto. Se hai implementato correttamente il BackGroundWorker nulla dovrebbe bloccarsi.
    Posta tutto il codice che usi.

    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Chiedo scusa se non ho postato codice, il fatto è che il programma è lungo e complesso, di codice ce n'è troppo. Comunque il BackgroundWorker lo faccio partire così
    codice:
    key = MD5(encryptPasswordBox.Text);
    bgw = new BackgroundWorker();
    bgw.WorkerSupportsCancellation = true;
    bgw.DoWork += new DoWorkEventHandler(encrypt);
    bgw.RunWorkerAsync();
    Non so se possa aiutare, ma può essere correlato al fatto che il metodo encrpt va anche a modificare alcuni parametri dei componenti dell'interfaccia?

    Però è strano perchè si blocca solo dopo l'esecuzione e solo per un tempo limitato.

    Intanto grazie
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Il codice che hai postato non è sufficiente. Posta anche quello che utilizzi nel DoWork e anche quello che eventualmente utilizzi nel ProgressChange/WorkerCompleted.
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Risolto: era proprio questo
    Non so se possa aiutare, ma può essere correlato al fatto che il metodo encrypt va anche a modificare alcuni parametri dei componenti dell'interfaccia?
    ho messo a posto sfruttando gli eventi generati dal BackgroundWorker, come ad esempio RunWorkerCompletedEventHandler e altri.

    Grazie lo stesso

    Ciao
    La differenza fra la genialità e la stupidità è che la genialità ha i suoi limiti.


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.