readerwriterlockslim

    -1

    1답변

    현재 프로젝트에 이상한 버그가 있습니다. 두 가지 질문이있는 이유는 무엇입니까? 1) 왜 이런 일이 발생합니까? 2) 어떻게 해결할 수 있습니까? 몇 가지 추가 정보 : 나는이 기능을 가지고 쿼드 코어의 CPU (인텔 Core2Quad Q9650) 와 시스템에서이 작업을 실행하는거야 "해봐요()는"그 한 번에 여러 스레드에서 호출 할 수 있습니다 : for

    11

    2답변

    내 속성에 대한 액세스를 동기화하기 위해 ReaderWriterLockSlim 클래스를 사용합니다. 다음 코드를 사용하여 스레드로부터 안전한 방식으로 내 속성에 액세스합니다. 내가 가져 오거나 한 번에 여러 속성을 설정 나는 ReaderWriterLockSlim -object을 발표하고, 클래스의 외부에서 내가 얻을 또는 속성의 무리를 설정하려고 해요마다

    -1

    1답변

    하나의 전용 스레드에 의해 관리되는 데이터베이스 쓰기 작업 큐가 있습니다. 그리고 나는 원할 때마다 데이터베이스에서 읽는 많은 스레드를 가지고있다. 읽기/쓰기 액세스 제어에 ReaderWriterLockSlim을 사용하고 있습니다. 제 질문은 - 왜 LockRecursionPolicy.SupportsRecursion을 권장하지 않습니까? MSDN의 문서는

    2

    1답변

    나는 ReaderWriterLockSlim에 좌절감을 느껴 ExitWriteLock을 지연시킵니다. 타이머 콜백에서 WriteLock이 해제되는 이유는 무엇입니까? var _lock = new ReaderWriterLockSlim(); _lock.EnterWriteLock(); Assert.AreEqual(true, _lock.IsWriteLockHel

    1

    1답변

    우리는 RW 애플리케이션의 추가적인 오버 헤드가있을지라도 우리의 코드가 읽기 - 쓰기 자물쇠로 바뀌면 더 많은 성능을 낼 수있는 몇 가지 완전한 lock -s를 가지고 있습니다. 더 평행. 불행히도, 특정 하드웨어에서 교착 상태가 발생할 수있는 꽤 큰 동기화 버그로 보이기 때문에 ReaderWriterLockSlim을 사용할 수 없습니다. This arti

    4

    2답변

    현재 WinDbg로 덤프를 분석 중입니다. 나는 ( Tess' incredible walkthrough 다음) 명령을 다음 실행 : 나에게 모든 스레드의 모든 스택을 나열 ~* e !clrstack . 이 더 많거나 적은 동일한 스택 (300 개) 실행 스레드, 그래서 난 그냥 OS Thread Id: 0x107c (166) Child SP IP C

    1

    3답변

    일련의 법적 조치 후에 ReaderWriterLockSlim이 손상되는 시나리오가 발생했습니다. 흐름은 다음과 같습니다 스레드 1은 리더 lock1을 2 개 시도 작가 lock1에게 실 소요 - 스레드 2가 중단 블록 및 호출 lock1.ExitReadLock 스레드 2 않았다 자물쇠를 가져와. 예외가 발생했을 것 같습니다. 위의 단계 3, 디버거가 loc

    3

    5답변

    멀티 스레딩을 광범위하게 사용하는 응용 프로그램을 작성하고 있습니다. 일부 스레드는 ReaderWriterLockSlim을 사용하여 observablecollection을 공유합니다. 나는 교착 상태가 발생하면 교착 상태에 빠져있는 스레드인지 알 필요가있다. 어떻게 알 수 있습니까? 나는 물체의 속성을 살펴 봤고 명백한 것은 없었습니다. 현재 알고있는 것은

    2

    1답변

    나는 MyClass 클래스를 가지고 있습니다. 이 클래스는 필드가 있습니다 : public ReaderWriterLockSlim rw; (더 쉬운 예제 코드는 공개). 많은 스레드 등 rw.EnterReadLock 또한 내가 구현 한 IDisposable 인터페이스를 사용하여 MyClass에서 데이터를 읽을 수 있습니다 : 하나 개의 스레드가 MyClass

    0

    2답변

    나는 다음과 같은 일반적인 CachedRepository 만들었습니다에 잠 일반 객체를 사용하여 public class CachedRepository<T> : ICachedRepository, IRepository<T> where T : BaseModel, new() { private static readonly Lock<T> TypeLock