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

    blocco form principale

    salve a tutti! una domanda mi freme da tanto: come mai quando creo un semplice ciclo in un form questo mi si blocca e si "rianima" solo dopo aver completato il ciclo?
    ho letto che per non far bloccare il form principale devo usare i thread, ho dato un occhiata a un paio di guide ma non ho capito un tubo.
    potete aiutarmi nella comprensione di questo argomento? o almeno se è possibile far in modo che avviatosi il ciclo e si blocchi il form mi faccia almeno comparire un nuovo form (non bloccato)

    grazie a tutti!
    I miei piccoli progetti su
    www.disactive.com

  2. #2

  3. #3
    già visto! ma non ho capito niente!! io il codice del programma l'ho già scritto e vorrei una spiegazione semplice su come inserire questi thread, non link che mi rimandano ad altre pagine, dato che so trovarle da me..
    I miei piccoli progetti su
    www.disactive.com

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    48
    Posta il codice.. gli do un occhiata poi provo a spiegarti...

  5. #5
    Originariamente inviato da Tyler88
    già visto! ma non ho capito niente!! io il codice del programma l'ho già scritto e vorrei una spiegazione semplice su come inserire questi thread, non link che mi rimandano ad altre pagine, dato che so trovarle da me..
    Quel link è il massimo che potessi fare, visto che nella domanda non hai riportato:
    • il linguaggio, la versione e la tecnologia nella quale stai sviluppando (Win Forms, ASP.NET, Silverlight, ecc.)
    • un pezzo del tuo codice per rendersi conto del problema

    Chi non cerca trova.

  6. #6
    scusa :P credevo fosse uguale per tutti!
    comunque sto lavorando in vb.net e il programma sarebbe un file splitter, cioè divide un file in varie parti. ma quando vado per dividere un file di grosse dimensioni sta li parecchio con il form bloccato... e vorrei fare in modo che il form rimanesse attivo, spostabile, ecc
    non so se mi sono spiegato bene
    I miei piccoli progetti su
    www.disactive.com

  7. #7
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    In VB.NET puoi risolvere in due modi:
    primo: alla fine (ma dentro) il ciclo metti Application.DoEvents() che processa tutti gli eventi in code (effetto: il form non è bloccato)
    secondo: crei un thread, che non è altro che una specie di "nuovo programma" (mi perdonino i forumisti più esperti) che si occupa di eseguire una tua routine.
    codice:
    Dim MyThread As New Thread(AddressOf MiaRoutine)
            MyThread.Start()
    Con questo codice istanzi un nuovo thread e lo fai partire. Se vuoi aspettare che finisca basta che usi il metodo join() del tuo thread (ricordati di importare System.Threading)
    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
    Grazie ShaleN!! questo lo avevo provato ma non va, o non so integrarlo con il mio codice.
    in pratica ad andressof devo mettere l'indirizzo delle istruzioni da eseguire messe in un private sub, giusto? tipo così:

    private sub avvio()
    'codice programma
    end sub

    private sub button1_click....
    Dim MyThread As New Thread(AddressOf AVVIO)
    MyThread.Start()
    end sub

    correggimi se ho fatto male, perchè se ho sbagliato ti chiedo di farmi un piccolo esempio, se ho fatto bene allora ti informo che è un pò complicato dato che il mio codice è strutturato tipo così:

    private sub button1_click...
    msgbox "avvio programma"
    avvio()
    end sub

    private sub avvio()
    'codice ecc ecc
    ricontrollo()
    end sub

    private sub ricontrollo()
    'codice ricontrollo ecc ecc
    end sub

    come faccio?





    EDIT: mi sono dimenticato di dire che il System.Threading lo importo
    I miei piccoli progetti su
    www.disactive.com

  9. #9
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    private sub avvio()
    'codice programma
    end sub

    private sub button1_click....
    Dim MyThread As New Thread(AddressOf AVVIO)
    MyThread.Start()
    end sub
    Yes, It's ok.

    come faccio?
    Fai esattamente come ti ho detto io, solo che metti AddressOf Avvio sull'inizializzazione del thread.
    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

  10. #10
    con quale calibro mi spari se ti dico che non ho capito? :P

    faccio così ma non va

    codice:
        Private Sub AddressOf AVVIO()
            If MessageBox.Show("avvio?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                Ripassa()
    
            Else
                ' niente!
            End If
        End Sub
    
        Private Sub Esegui_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Esegui.Click
            Dim MyThread As New Thread(AddressOf AVVIO)
            MyThread.Start()
    
        End Sub
    che frana che so
    I miei piccoli progetti su
    www.disactive.com

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.