Share via


방법: 다중 스레드 실행 조정

업데이트: 2007년 11월

다중 스레드 구성 요소를 스레드로부터 안전하게 보호하려면 공유 리소스에 대한 액세스를 조정해야 합니다. 동시에 여러 스레드가 공유 리소스에 액세스하려고 하면 경합 상태가 발생하여 데이터가 손상될 수 있습니다. 잠금을 사용하면 경합 상태의 발생을 막을 수 있습니다. 스레드로부터의 안전성과 경합 상태에 대한 자세한 내용은 스레드로부터 안전한 구성 요소를 참조하십시오.

개체에 잠금을 만들려면

  1. 원자적으로 실행할 코드 및 코드 실행 대상이 되는 개체를 식별합니다. 자세한 내용은 스레드로부터 안전한 구성 요소를 참조하십시오.

  2. 이 개체에 잠금을 설정하고 코드를 그 잠금 안에 넣습니다.

    이제 이 코드는 잠금이 설정된 개체에서 원자적으로 실행됩니다.

    SyncLock MyObject   ' This represents the start of the lock on MyObject.
    ' Insert code to be executed atomically on MyObject here.
    End SyncLock   ' This represents the end of the lock.
    
    lock (MyObject) 
       // All code inside the braces {} is executed with MyObject locked.
    {
       // Insert code to be executed atomically on MyObject here.
    }
    

참고 항목

작업

연습: Visual Basic으로 간단한 다중 스레드 구성 요소 만들기

연습: Visual C#으로 간단한 다중 스레드 구성 요소 만들기

개념

스레드로부터 안전한 구성 요소

이벤트 기반 비동기 패턴 개요

참조

BackgroundWorker

기타 리소스

구성 요소에서 다중 스레딩