Como enviar um item de trabalho para o pool de segmentos usando translation from VPE for Csharp Visual

Traduções deste artigo Traduções deste artigo
ID do artigo: 315460 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

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

No ambiente. NET, cada processo possui um pool de segmentos que você pode usar para executar métodos de maneira assíncrona.

Requisitos


A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • O Visual translation from VPE for Csharp linguagem de programação

Criar um aplicativo translation from VPE for Csharp Visual que usa o pool de threads

  1. Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
  2. Crie um novo projeto de Visual translation from VPE for Csharp Windows Application chamado PoolDemo.
  3. Use a caixa de ferramentas para adicionar um controle Button ao formulário. O nome padrão para o controle Button é button1.
  4. Clique com o botão direito do formulário e clique em View Code .
  5. Cole a seguinte diretiva usando após as diretivas existentes usando , mas antes da declaração do namespace PoolDemo :
    using System.Threading;
    					
  6. Alterne para o modo Design e, em seguida, clique duas vezes em button1 . Cole o seguinte código no manipulador 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 dentro do corpo da classe Form1 . O método GetSysDirSize calcula o número total de bytes armazenados no diretório do sistema. GetSysDirSize chama outro método chamado DirSize para executar o cálculo.

    Observação : esta tarefa pode levar algum tempo para executar.
    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. Pressione CTRL+F5 para executar o aplicativo.
  2. Quando o formulário for exibido, clique no botão. Quando a caixa de mensagem que o item de trabalho foi colocado na fila for exibida, clique em OK para fechar a caixa de mensagem e retornar para o formulário principal. Após um pequeno intervalo, o tamanho total do arquivo no diretório do sistema será exibido na legenda do formulário. A duração do atraso depende da velocidade do seu computador e o número de arquivos no diretório do sistema. O cálculo de tamanhos de arquivo ocorre-se em um thread no pool de segmentos.

Propriedades

ID do artigo: 315460 - Última revisão: segunda-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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