예전에 설계시간에 FiFo 세마포어를 사용할일이 있어서 만든겁니다.
C#에서는 기본적으로 세마포어를 제공해주는데 세마포어에서 Release 해줄때
순차적으로 릴리즈 해주는게 아니라 랜덤으로 나와서 몇일 고생하며 만든 기억
이 나네요~ 잘 쓰시길 바래요 Release 함수는 프로젝트를 열어봐야해서 다음에
시간되면 포스팅 하겠습니다
private void enterWait(object num)
{
Thread tempThread = null;
int number = (int)num;
if (enternumber > 0)
{
enternumber--;
return;
}
else
{
tempThread = Thread.CurrentThread;
this.Q.Enqueue(tempThread);
lock (tempThread)
{
Monitor.Wait(tempThread);
}
}
'Programing > C#' 카테고리의 다른 글
c# 크로스 스레드, 델리게이트 delegate 활용 (0) | 2015.01.05 |
---|---|
c# 크로스 스레드(CheckForIllegalCrossThreadCalls) (1) | 2015.01.05 |
(C#) Semaphore Release (0) | 2014.07.08 |