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

    Strano problema nell'esecuzione di un EXE

    Ho uno strano comportamento nell'applicativo che sto implementando.

    Il programma legge dei dati da un server web e li salva in un database locale.

    La cosa strana è che se lo avvio in modalità "Release" da Visual Studio 2005 funziona a meraviglia, mentre se lo avvio direttamente dal file exe generato in compilazione (dentro la cartella Release) si comporta in maniera diversa, bloccandosi al termine dell'esecuzione.

    Avete qualche idea su quale possa essere la causa? Nell'applicativo utilizzo un backgroundworker, potrebbe dipendere da quello?

    Analizzando il codice ho notato che l'esecuzione si blocca proprio al termine del processo background.

    C'è un modo per modificare le opzioni per la creazione dell'exe?
    Vi prego aiutatemi!
    Luca >> http://www.pollosky.it

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    senza informazioni e codice ci vorrebbe un indovino..
    anche perchè non hai indicato il linguaggio...

  3. #3
    Scusami.

    Allora, il codice è VB.NET

    all'interno della classe prinicipale attivo il background worker in questo modo:
    codice:
            Me.bkw_LeggiWeb.RunWorkerAsync(numP)
            While bkw_LeggiWeb.IsBusy
                Application.DoEvents()
            End While
    gli eventi gestiti dal background worker sono:
    codice:
        Private Sub bkw_LeggiWeb_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bkw_LeggiWeb.DoWork
            Dim numP As Integer = CType(e.Argument, Integer)
            Dim msg() As String = Funzione_Inizio(numP)
            e.Result = msg
        End Sub
    
        Private Sub bkw_LeggiWeb_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bkw_LeggiWeb.RunWorkerCompleted
            Dim msg() As String = DirectCast(e.Result, String())
            If msg IsNot Nothing Then 
                 Funzione_Fine(msg)
            End If
        End Sub
    mettendo un msgbox ho notato che il programma si blocca proprio dentro al RunWorkerCompleted e non riesco a capire perchè. Ho provato anche a commetare tutte le istruzioni all'interno ma si blocca lo stesso.

    La cosa che proprio non capisco è come mai lanciandolo in Release da Visual Studio funziona tutto perfettamente. Mentre con l'exe no.
    Luca >> http://www.pollosky.it

  4. #4
    Mi sono reso conto che si tratta di un problema di grafica, mi spiego meglio.

    Il processo in background va a popolare una griglia visualizzata a schermo, quando le righe eccedono in verticale automaticamente si deve creare la scrollbar...proprio in questa fase il programma avviato tramite exe si blocca.

    Se lo termino e poi lo riapro non ho più alcun problema perchè la scroll è già visualizzata in quanto alcune righe sono già state caricate in precedenza.

    C'è un modo per visualizzare la scrollbar anche in assenza di righe? Senza che venga attivata solo quando le righe sono maggiori dell'area verticale.
    Luca >> http://www.pollosky.it

  5. #5
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Controlla se la griglia ha la proprietò Scroll o AutoScroll o ScrollVisible o simili...

  6. #6
    Sono riuscito a risolvere.

    Cambiando le impostazioni su AutoScroll avevo comunque il problema.

    Alla fine per aggirarlo ho dovuto impostare ScrollBars.Horizontal prima dell'avvio del backgroundworker per poi rimmetterla a Both appena terminato.

    Sinceramente non ho ancora capito il motivo di questo strano comportamento, ma in questo modo funziona.
    Luca >> http://www.pollosky.it

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.