Questione : Ridisegnare il problema quando l'applicazione è occupata - filettano i funzionamenti?

Ho un'applicazione in VS2008 (VB.NET) che realizza alcuni lunghi funzionamenti. Sulla mia forma principale, ho una barra di progresso (nel modo della tenda foranea) quella io vorrei essere visibile. Quando l'applicazione sta eseguendo i sommergibile e le funzioni, la forma chiude in su e male è disegnata (come descritto) per parecchi minuti mentre il codice è eseguito - credo che la soluzione sia di fare funzionare le funzioni in altro filetto. Come questo è fatto SEMPLICEMENTE? il

When che un pulsante di scelta è selezionato, le funzioni è codice di executed.
Example:
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
class= " del id= " codeSnippet814463 del
…
  ElseIf Me.RadioButtoni7.Checked = allora allinea
    ExecuteOperation (“inizio„)
    RestartClusteredServiceProduction (“HF1„)
    RestartClusteredServiceProduction (“Sys2„)
    ExecuteOperation (“arresto„)
  ElseIf Me.RadioButtoni8.Checked = allora allinea
    ExecuteOperation (“inizio„)
    RestartPSProduction ()
    RestartSFProduction ()
    RestartQRProduction ()
    ExecuteOperation (“arresto„)
  ElseIf Me.RadioButtoni9.Checked = allora allinea
    ExecuteOperation (“inizio„)
    RestartTServerTest ()
    RestartEPSTest ()
    ExecuteOperation (“arresto„)
  ElseIf Me.RadioButtono1.Checked = allora allinea
…
class= " lastRow del
>Attachments " di nome " del class= del class= " valore " del
il

il nome di schedario " del class= di >g3freeze.png " fileSize " > (28 Kb) il Javascript " del href= " " dei attachmentDetails del class= di (tipo di lima particolari)
>Application " di descrizione " del class= del
larghezza dello style= del >
il class= di
del >
il
il nome di schedario " del class= di >g3normal.png " fileSize " > (27 Kb) il Javascript " del href= " " dei attachmentDetails del class= di (tipo di lima particolari)
>How che " di descrizione " del class= del
larghezza dello style= del >
il class= di
del >
class= del

Risposta : Ridisegnare il problema quando l'applicazione è occupata - filettano i funzionamenti?

Sotto è una certa rappresentazione di pseudo codice uso semplificato del controllo di BackgroundWorker ():
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
Codice categoria pubblico Form1

    Maniglie riservate Button1.Click del sommergibile Button1_Click (mittente di ByVal come System.Object, ByVal e come System.EventArgs)
        BackgroundWorker1.RunWorkerAsync (ParameterOptionalHere)
    Sommergibile dell'estremità

    Maniglie riservate BackgroundWorker1.DoWork del sommergibile BackgroundWorker1_DoWork (mittente di ByVal come oggetto, ByVal e come System.ComponentModel.DoWorkEventArgs)
        'afferrare il parametro se usato:
        Oscurar x = getto di e.Argument 'a di qualunque avete bisogno
        Foo (x)
    Sommergibile dell'estremità

    Foo secondario riservato ()

        '… il vostro sommergibile attuale…

        'Usare ReportProgress () se dovete aggiornare il GUI durante il funzionamento:
        BackgroundWorker1.ReportProgress (0, ANY_OBJECT_HERE)
        'il primo parametro è in genere 0 - 100  per un progressbar
        'il secondo parametro può essere usato a passy QUALCHE COSA
    Sommergibile dell'estremità

    Il sommergibile riservato BackgroundWorker1_ProgressChanged (mittente di ByVal come oggetto, ByVal e come System.ComponentModel.ProgressChangedEventArgs) tratta BackgroundWorker1.ProgressChanged
        '… aggiornamento il GUI da questo evento…
        il primo parametro di e.ProgressPercentage 'è passato a ReportProgress ()
        il secondo parametro di e.UserState 'è passato a ReportProgress () --> lanciarlo con il l$tipo C ()
    Concludere il sommergibile

    Il sommergibile riservato BackgroundWorker1_RunWorkerCompleted (mittente di ByVal come oggetto, ByVal e come System.ComponentModel.RunWorkerCompletedEventArgs) tratta BackgroundWorker1.RunWorkerCompleted
        '… questo fuochi quando il funzionamento del backgroundworker è completo…
    Sommergibile dell'estremità

Codice categoria dell'estremità
Altre soluzioni  
 
programming4us programming4us