현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

HOWTO: Visual C# .NET을 사용하여 스레드 만들기

이 문서의 Microsoft Visual Basic .NET 버전에 대한 내용은 315577을 참조하십시오.


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


작업 내용

요약

Visual C# .NET에서는 다중 스레드 응용 프로그램을 작성할 수 있습니다. 이 문서에서는 간단한 Visual C# .NET 응용 프로그램으로 스레드를 만들고 관리하는 방법을 설명합니다.

맨 위로

요구 사항

다음 목록은 권장하는 하드웨어, 소프트웨어, 네트워크 인프라 및 서비스 팩입니다.
  • Microsoft Windows 2000 또는 Microsoft Windows XP
  • Microsoft Visual C# .NET
이 문서에서는 사용자가 다음 내용을 잘 알고 있는 것으로 가정합니다.
  • Visual C# .NET 프로그래밍
  • Visual Studio .NET 통합 개발 환경(IDE)
맨 위로

스레드가 있는 Visual C# .NET 응용 프로그램 만들기

  1. Microsoft Visual Studio .NET을 시작합니다.
  2. ThreadWinApp라는 Visual C# .NET Windows 응용 프로그램 프로젝트를 새로 만듭니다.
  3. 폼에 Button 컨트롤을 추가합니다. 기본적으로 단추의 이름은 Button1입니다.
  4. 폼에 ProgressBar 구성 요소를 추가합니다. 기본적으로 진행률 표시줄의 이름은 ProgressBar1입니다.
  5. 폼을 마우스 오른쪽 단추로 누른 다음 코드 보기를 누릅니다.
  6. 파일의 시작 부분에 다음 문을 추가합니다.
    using System.Threading;
  7. Button1에 대해 다음 Click 이벤트 처리기를 추가합니다.
    private void button1_Click(object sender, System.EventArgs e){	MessageBox.Show("This is the main thread");}
  8. Form1 클래스에 다음 변수를 추가합니다.
    private Thread trd;
  9. Form1 클래스에 다음 메서드를 추가합니다.
    private void ThreadTask(){	int stp;	int newval;	Random rnd=new Random();	while(true)	{		stp=this.progressBar1.Step*rnd.Next(-1,2);		newval = this.progressBar1.Value + stp;		if (newval > this.progressBar1.Maximum)			newval = this.progressBar1.Maximum;		else if (newval < this.progressBar1.Minimum)			newval = this.progressBar1.Minimum;				this.progressBar1.Value = newval;		Thread.Sleep(100);	}}
    참고 이것은 스레드의 기초를 이루는 코드입니다. 이 코드는 ProgressBar1의 값을 임의로 늘리거나 줄인 다음 100밀리초 기다렸다가 계속하는 무한 루프입니다.
  10. Form1에 대해 다음 Load 이벤트 처리기를 추가합니다. 이 코드는 새로운 스레드를 만들고, 새 스레드를 백그라운드 스레드로 만든 다음 스레드를 시작합니다.
    private void Form1_Load(object sender, System.EventArgs e){	Thread trd = new Thread(new ThreadStart(this.ThreadTask));	trd.IsBackground = true;	trd.Start();}
맨 위로

작동 여부 확인

  1. 응용 프로그램을 빌드하고 실행합니다. ProgressBar1의 값이 임의로 바뀝니다. 이것은 새 스레드가 작업 중인 것입니다.
  2. 주 스레드가 ProgressBar1 값을 변경하는 스레드와 무관하다는 것을 보여주려면 폼의 단추를 누릅니다. 다음 오류 메시지를 표시하는 대화 상자가 나타납니다.
    This is the main thread
입력을 기다립니다. ProgressBar1의 값이 계속 바뀜을 알 수 있습니다.

맨 위로

문제 해결

더 복잡한 응용 프로그램에서는 공유 변수에 액세스할 때 여러 스레드를 동기화했는지 확인하십시오. 자세한 내용은 Visual C# .NET 온라인 도움말 설명서의 lock 문과 관련 항목을 참조하십시오.

맨 위로
참조
자세한 내용은 다음 Microsoft 웹 사이트 또는 .NET Framework SDK 설명서를 참조하십시오.





Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.
속성

문서 ID: 815804 - 마지막 검토: 06/13/2003 08:47:22 - 수정: 1.4

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft ADO.NET 1.0, Microsoft Common Language Runtime (included with the .NET Framework) 1.0

  • kbnamespace kbthreadsync kbthread kbhowtomaster KB815804
피드백
html>s"> amp;t="> " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">Script" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("