Como submeter um item de trabalho para o conjunto de threads utilizando o Visual C#

Traduções de Artigos Traduções de Artigos
Artigo: 315460 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo mostra como submeter um método para o conjunto de threads para execução.

No ambiente. NET, cada processo tem um conjunto de threads que pode utilizar para executar métodos de modo assíncrono.

Requisitos


A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft Visual Studio .NET ou o Microsoft Visual Studio 2005
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
  • O Visual C# linguagem de programação

Criar uma aplicação Visual C# que utiliza o conjunto de threads

  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. Crie um novo projecto de aplicação do Windows do Visual C# denominado PoolDemo.
  3. Utilize a caixa de ferramentas dos controlos para adicionar um controlo de botão ao formulário. O nome predefinido do controlo de botão é button1.
  4. Clique com o botão direito do rato no formulário e, em seguida, clique em Código .
  5. Cole a seguinte directiva utilizando depois das directivas existente utilizando o , mas antes da declaração do espaço de nomes PoolDemo :
    using System.Threading;
    					
  6. Voltar à vista de estrutura e, em seguida, faça duplo clique button1 . Cole o seguinte código no processador de eventos 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. Cole o seguinte código no corpo da classe Form1 . O método GetSysDirSize calcula o número total de bytes armazenados no directório do sistema. GetSysDirSize chama outro método chamado DirSize para efectuar o cálculo.

    Nota : esta tarefa pode demorar algum tempo para ser executado.
    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;
    }
    					

Testar o exemplo

  1. Prima CTRL + F5 para executar a aplicação.
  2. Quando o formulário for apresentado, clique no botão. Quando aparecer a caixa de mensagem que o item de trabalho foi colocado na fila , clique em OK para fechar a caixa de mensagem e regressar ao formulário principal. Depois de um pequeno atraso, o tamanho total do ficheiro no directório do sistema é apresentado na legenda do formulário. O comprimento do atraso depende da velocidade do computador e o número de ficheiros no directório do sistema. Cálculo de tamanhos de ficheiros ocorre num thread no conjunto de threads.

Propriedades

Artigo: 315460 - Última revisão: 11 de dezembro de 2006 - Revisão: 2.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbhowtomaster kbsample kbthread KB315460 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315460

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com