Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di giupor
    Registrato dal
    Oct 2001
    Messaggi
    39

    Multithreading: se lo uso si rallenta un casino!

    Sono un novello della tecnologia .NET

    Ho creato con Visual Studio il mio bel programmino (windows form) che legge un file txt e popola la tabella di un database SQLserver.
    Fin qui tutto bene.

    Ho notato durante l'esecuzione che se clicco su un altro programma qualsiasi di windows (es. IE) il mio form si blocca. Idem se cerco di spostare la mia finestra...

    Mi sono documentato e ho scoperto il multithreading con questo tutorial:

    http://www.it-lang-vb.net/Documentaz...dingDotNet.pdf

    L'ho applicato al mio programmino e ... magia ... FUNZIONA!!!
    Posso far girare il mio programma e intanto usare Word piuttosto che IE...

    Unica pecca: un rallentamento enorme nell'esecuzione del mio programma. Ma proprio vistoso!!!
    Se prima impiegava 10 minuti per caricarmi 82.000 record nella tabella ... ora non lo so perchè non ho avuto la pazienza di aspettare (credo che facendo una stima ci metta un'ora o più).

    Vorrei solo sapere, da qualche anima pia più esperta di me, se la cosa è normale o se c'è qualche inghippo di cui non sono a conoscenza...

    Grazie
    ... facciamo di internet uno strumento utile ...

  2. #2
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    la cosa non è proprio normale...

  3. #3
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Suppongo che tu usi un ciclo per leggere il file e caricare la tabella....mi chiedevo se al suo interno hai messo un DoEvents() :quipy: ....
    ...and I miss you...like the deserts miss the rain...

  4. #4
    Utente di HTML.it L'avatar di giupor
    Registrato dal
    Oct 2001
    Messaggi
    39
    No non ho usato DoEvents()...
    Ho fatto dei semplici loop tipo questo:

    -------------------------------------------
    Do
    sLine = objReader.ReadLine()
    If Not sLine Is Nothing Then
    cnt = cnt + 1
    End If
    Loop Until sLine Is Nothing
    ---------------------------------------------

    Qualche idea?
    ... facciamo di internet uno strumento utile ...

  5. #5
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da giupor
    No non ho usato DoEvents()...
    Ho fatto dei semplici loop tipo questo:

    codice:
            Do
                sLine = objReader.ReadLine()
                If Not sLine Is Nothing Then
                    cnt = cnt + 1
                End If
           Loop Until sLine Is Nothing
    Qualche idea?
    codice:
            Do
                DoEvents()
                sLine = objReader.ReadLine()
                If Not sLine Is Nothing Then
                    cnt = cnt + 1
                End If
           Loop Until sLine Is Nothing
    Fai cosi' in ogni loop che hai fatto e prova a vedere se ancora rallenta tutto.
    Un ciclo cosi', anche se semplice semplice, potrebbe durare anche per giorni .
    ...and I miss you...like the deserts miss the rain...

  6. #6
    Utente di HTML.it L'avatar di giupor
    Registrato dal
    Oct 2001
    Messaggi
    39
    Ho provato a metterlo ma VisualStudio me lo sottolinea come se fosse un errore. Se poi provo a generare il file exe mi restituisce questo messaggio: - nome "DoEvents" non dichiarato.

    Mi sa che sto commettendo qualche errore di fondo...
    ... facciamo di internet uno strumento utile ...

  7. #7
    Utente di HTML.it L'avatar di giupor
    Registrato dal
    Oct 2001
    Messaggi
    39
    scrivendo invece:

    Application.DoEvents()

    non da errore ma è sempre lento uguale...
    ... facciamo di internet uno strumento utile ...

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.