Al momento sei offline in attesa che la connessione Internet venga ristabilita

Come inviare un elemento di lavoro al pool di thread utilizzando C#

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

315460
In questo articolo si riferisce la spazio dei nomi Microsoft .NET Framework Class Library riportato di seguito:
  • System.Threading

Contenuto dell'attività

Sommario
In questo articolo viene illustrato come inviare un metodo per il pool di thread per l'esecuzione.

Ogni processo nell'ambiente. NET, dispone di un pool di thread che è possibile utilizzare per eseguire metodi in modo asincrono.

back to the top

Requisiti


Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack necessari:
  • Microsoft Visual Studio .NET o Microsoft Visual Studio 2005
In questo articolo si presume la conoscenza dei seguenti argomenti:
  • Visual C# linguaggio di programmazione
back to the top

Creare una Visual applicazione C# che utilizza il pool di thread

  1. Avviare Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.
  2. Creare un nuovo progetto applicazione Windows di Visual C# denominato PoolDemo.
  3. Utilizzare la casella degli strumenti per aggiungere un controllo Button al form. Il nome di predefinito per il controllo Button è button1.
  4. Fare clic con il pulsante destro del mouse il modulo e quindi fare clic su Visualizza codice .
  5. Incollare la seguente direttiva using dopo le direttive using esistente, ma prima della dichiarazione dello spazio dei nomi PoolDemo :
    using System.Threading;					
  6. Tornare alla visualizzazione struttura e quindi fare doppio clic su button1 . Incollare il codice seguente nel gestore eventi Button1_Click :
    private void button1_Click(object sender, System.EventArgs e){	WaitCallback wcb = new WaitCallback(GetSysDirSize);	try	{		ThreadPool.QueueUserWorkItem(wcb);		MessageBox.Show("The work item has been placed on the queue");	}	catch (Exception ex)	{		MessageBox.Show("Error: " + ex.Message);	}}					
  7. Incollare il codice seguente all'interno del corpo della classe Form1 . Il metodo di GetSysDirSize calcola il numero totale di byte che vengono archiviati nella directory di sistema. GetSysDirSize chiama un altro metodo denominato DirSize per eseguire il calcolo.

    Nota : questa operazione potrebbe richiedere alcuni tempo eseguire.
    private void GetSysDirSize(object state){	long total_length = DirSize(Environment.SystemDirectory);	this.Text = total_length.ToString();}private long DirSize(string path){	long sz = 0;	System.IO.DirectoryInfo d = new System.IO.DirectoryInfo(path);		// List files.	foreach(System.IO.FileInfo f in d.GetFiles())	{		sz += f.Length;	}	// Recurse into directories.	foreach(System.IO.DirectoryInfo dx in d.GetDirectories())	{		sz += DirSize(dx.FullName);	}	return sz;}					
back to the top

Test dell'esempio

  1. Premere CTRL+F5 per eseguire l'applicazione.
  2. Quando viene visualizzato il form, fare clic sul pulsante. La finestra di messaggio che l'elemento di lavoro è stato inserito in coda progetti fare clic OK per chiudere la finestra di messaggio e tornare al form principale. Dopo alcuni istanti, la dimensione di totale di file nella directory di sistema viene visualizzata nella didascalia del form. La lunghezza del ritardo dipende dalla velocità del computer e il numero di file nella directory di sistema. Il calcolo della dimensione dei file avviene su un thread nel pool di thread.
back to the top

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 315460 - Ultima revisione: 12/11/2006 20:59:14 - Revisione: 2.3

  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbmt kbhowtomaster kbsample kbthread KB315460 KbMtit
Feedback