Visual C# 를 사용하여 작업 항목을 스레드 풀에 제출하는 방법

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

315460
이 문서에서는 다음 Microsoft .NET Framework 클래스 라이브러리의 네임스페이스를 참조합니다.
  • System.Threading

이 작업의

요약
이 문서에서는 실행을 위해 스레드 풀에 메서드를 전송하는 방법을 보여 줍니다.

.NET 환경에서 각 프로세스에는 메서드를 비동기적으로 실행하는 데 사용할 수 있는 스레드 풀이 있습니다.

back to the top

요구 사항


다음은 권장되는 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩의 목록입니다.
  • Microsoft Visual Studio .NET 또는 Microsoft Visual Studio 2005
이 문서에서는 사용자가 다음 항목을 잘 알고 있다고 가정합니다.
  • 다음 Visual C# 프로그래밍 언어에
back to the top

스레드 풀 사용하는 Visual C# 응용 프로그램 만들기

  1. Microsoft Visual Studio .NET 또는 Microsoft Visual Studio 2005 시작하십시오.
  2. PoolDemo 라는 새 Visual C# Windows 응용 프로그램 프로젝트를 만듭니다.
  3. 도구 상자에서를 Button 컨트롤을 폼에 추가할 수 있습니다. 기본 단추 컨트롤의 button1 이름입니다.
  4. 양식을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭하십시오.
  5. 기존 사용하여 지시문 뒤에 있지만 PoolDemo 네임스페이스 선언 앞에 다음과 같은 using 지시문을 붙여넣기:
    using System.Threading;					
  6. 디자인 보기로 다시 전환한 다음 button1 두 번 클릭하십시오. 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. Form1 클래스에 본문 내에 다음 코드를 붙여 넣습니다. GetSysDirSize 메서드는 총 시스템 디렉터리에 저장되는 바이트 수를 계산합니다. GetSysDirSize 계산을 수행하기 위해 DirSize 라는 다른 메서드를 호출합니다.

    참고: 이 작업을 실행하는 데 몇 시간이 걸릴 수 있습니다.
    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

예제 테스트

  1. 응용 프로그램을 실행하기 위해 Ctrl + F5를 누릅니다.
  2. 폼이 나타나면 해당 단추를 클릭하십시오. 작업 항목을 이미 배치된 큐에 메시지 상자가 나타날 때 메시지 상자를 닫고 주 폼으로 돌아가려면 확인 을 클릭하십시오. 짧은 지연 후에 시스템 디렉터리의 총 파일 크기가 폼의 캡션이 표시됩니다. 지연 길이를 컴퓨터와 시스템 디렉터리에 있는 파일 수가 속도에 따라 달라집니다. 파일 크기 계산 스레드에서 스레드 풀에서 수행됩니다.
back to the top

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 315460 - 마지막 검토: 12/11/2006 20:59:14 - 수정: 2.3

Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster kbsample kbthread KB315460 KbMtko
피드백