Question : Multifile dans C# .NET

Je suis relativement nouveau au développement de logiciel dans .NET, et je veux employer multifile dans mon application pour empêcher le GUI de geler tandis qu'une méthode avec une longue méthode d'exemple de la question executes.
My de DB place un champ d'exemple qui ne devrait pas être mis en référence jusqu'à ce que la méthode d'exemple soit complète.  Comment est-ce que je peux faire ceci ? le

Attached est un certain code au demostrate ce que je fais : le



I a obtenu jusque le remplacement :

myObject1.queryRecent () ;

With : secondThread du

Thread = nouveau fil (nouveau ThreadStart (myObject1.queryRecent));
secondThread.Start () ;

But évidemment, label1.Text = myObject1.recentString ;  est exécuté tandis que la méthode est running.

How peut moi empêcher toujours cette ligne s'exécutant jusqu'à ce que la méthode queryRecent ait fini l'exécution ?

Thanks à l'avance,
Matt
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
classe partielle >public " de l'id= " codeSnippet867955 de
           
class= de

Réponse : Multifile dans C# .NET

Vous pouvez employer un BackgroundWorker () comme ceci :
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 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
    classe partielle publique Form1 : Forme
    {

        bgw privé = nulle de System.ComponentModel.BackgroundWorker ;
        Class1 privé myObject1 = nouveau Class1 () ;

        public Form1 ()
        {
            InitializeComponent () ;
        }

        vide privé textBox1_KeyPress (expéditeur d'objet, KeyPressEventArgs e)
        {
            si (nulle de == de bgw)
            {
                bgw = nouveau BackgroundWorker () ;
                bgw.DoWork += nouveau DoWorkEventHandler (bgw_DoWork) ;
                bgw.RunWorkerCompleted += nouveau RunWorkerCompletedEventHandler (bgw_RunWorkerCompleted) ;
            }

            si (&& de == 13 d'e.KeyChar ! bgw.IsBusy)
            {
                textBox1.Enabled = faux ;
                myObject1.myString = textBox1.Text ;
                bgw.RunWorkerAsync () ;
            }
        }

        bgw_DoWork vide (expéditeur d'objet, DoWorkEventArgs e)
        {
            myObject1.queryRecent () ;
        }

        le vide bgw_RunWorkerCompleted (expéditeur d'objet, RunWorkerCompletedEventArgs e)
        {
            label1.Text = myObject1.recentString ;
            textBox1.Enabled = rectifient ;
        }

    }
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us