동기화 (잠금)에 사용하는 개인 정적 필드가 있습니다. 이제는 동시에 실행하고 싶지 않은 두 가지 기능이 있습니다. 그래서 나는이 한 : 나는 물체에 고정하는 하나의 함수의 병렬 실행을 방지 할 것을 알고C# 스레딩 및 동기화
public class Synchronization
{
private static object _lock = new object();
public void MethodA()
{
lock (_lock)
{
Console.WriteLine("I shouldn't execute with MethodB");
}
}
public void MethodB()
{
lock (_lock)
{
Console.WriteLine("I shouldn't execute with MethodA");
}
}
}
을,하지만 같은 일 나는 동시에 실행 다른 방법에서 동일한 잠금 개체를 사용할 경우? 간단히 말해, 다른 스레드가 이미 다른 함수에서 이미 잠긴 객체에 대한 잠금을 획득 할 수 있습니까?
이유는 단순히 자신이 그것을 시도를 제공하지 :
이 같은해야 하는가? –
또한이 방법으로 클래스의 모든 인스턴스를 동기화했습니다. 원하지 않으면 잠금 개체의 "정적"부분을 제거하십시오. –
@Andreas MT 이론과 실습은 어렵습니다. 이것은 도움이되지 않습니다. –