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

기술 자료 번역 기술 자료 번역
기술 자료: 815804 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약


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 설명서를 참조하십시오.

"Thread Class"
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemThreadingThreadClassTopic.asp




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

속성

기술 자료: 815804 - 마지막 검토: 2003년 6월 13일 금요일 - 수정: 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

피드백 보내기

 

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