검색결과 리스트
Microsoft/C#에 해당되는 글 17건
글
BlockingQueue
설명
개발을 하다보면, 종종 MessageQueue 같은게 필요합니다. Thead 에 Safe 한 이러한 큐를 Semapore 를 이용하여 간단히 만들어 보았습니다.
Queue 안에 값이 있으면, Dequeue 가 정상적으로 되고, 만약 값이 들어있지 않다면, 새로운 값이 Enqueue 될때까지 block 상태가 됩니다. 이후 값이 들어오면 자동으로 dequeue 가 됩니다.
[BlockingQueue]
public class BlockingQueue<T>
{
Queue<T> que = new Queue<T>();
Semaphore sem = new Semaphore(0, Int32.MaxValue);
public void Enqueue(T item) {
lock (que) {
que.Enqueue(item);
}
sem.Release();
}
public T Dequeue() {
sem.WaitOne();
lock (que) {
return que.Dequeue();
}
}
}
'Microsoft > C#' 카테고리의 다른 글
Implicit Operator (0) | 2014.11.17 |
---|---|
C#,JScript, VisualBasic 을 스크립트처럼 사용하기 (0) | 2014.05.19 |
#warning, #error, #line 지시자 (0) | 2014.05.08 |
인증서(certification) 만들기 (1) | 2014.04.09 |
윈도우즈 방화벽 규칙 추가/설정/삭제하기 (3) | 2014.03.27 |
RECENT COMMENT