C#를 사용 하 여 스레드를 만드는 방법

이 문서의 Microsoft Visual Basic.NET 버전을 참조 하십시오.
315577 .


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


이 작업에서는

요약

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

맨 위로

요구 사항

다음은 권장된 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩입니다.
  • Microsoft Windows 2000, Microsoft Windows XP 또는 Microsoft Windows Server 2003
  • Microsoft Visual C#.NET 또는 Microsoft Visual C# 2005
이 문서에서는 독자가 다음 항목에 익숙하다고 가정합니다:
  • 시각적 프로그래밍 C#
  • Visual Studio.NET 통합된 개발 환경 (IDE) 또는 Visual Studio 2005 IDE
맨 위로

스레드를 사용 하 여 C# 응용 프로그램을 만듭니다.

  1. Microsoft Visual Studio.NET, Microsoft Visual Studio 2005 또는 Microsoft Visual C# 2005 익스프레스 에디션 시작 합니다.
  2. ThreadWinApp 라는 Visual C# Windows 응용 프로그램 프로젝트를 새로 만듭니다.
  3. Button 컨트롤을 폼에 추가 합니다. 기본적으로 해당 단추의 이름이 Button1.
  4. ProgressBar 구성 요소를 폼에 추가 합니다. 기본적으로 진행률 표시줄이 ProgressBar1라고 합니다.
  5. 양식을 마우스 오른쪽 단추로 클릭 하 고 코드 보기를클릭 합니다.
  6. 파일의 시작 부분에 다음 문을 추가 합니다.
    using System.Threading;
  7. 에 대 한 다음 Click 이벤트 처리기를 추가 합니다.
    Button1:
    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. 다음 Load 이벤트 처리기를 Form1에 추가 합니다. 이 코드는 새 스레드를 만드는 하 고 스레드가 백그라운드 스레드를 사용 하면 다음 스레드를 시작.
    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 계속 변경 합니다.

맨 위로

문제 해결

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

맨 위로

참조

자세한 내용은 다음 Microsoft 웹 사이트 또는.NET Framework SDK 설명서를 참조.
속성

문서 ID: 815804 - 마지막 검토: 2017. 2. 7. - 수정: 2

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

피드백