2013-04-23 5 views
0

에 대기열을 커밋합니다.내가이 같은 스레드를 사용하여 스레드를 시작하고 스레드

이것은 caled 함수 :

private void outp(object obj) 
    { 
     object[] arg = obj as object[]; 
     Queue<String> output = arg[0]; 
    } 

문제점 : ARG [0]이 대기열로 변환 할 수있다. 큐를 올바르게 스레드 풀에 넣을 수 있습니까? 대신 배열의

+4

캐스팅 ..... ..... – Tigran

+0

괜찮습니까? – tux007

+1

출력 = (큐 ) arg [0]; – Tigran

답변

0

패스 큐 :

ThreadPool.QueueUserWorkItem(new WaitCallback(outp), output); 

사용 큐 :

private void outp(object obj) 
{ 
    Queue<string> output = obj as Queue<string>; 
    // use queue here 
} 

은 BTW 명시 적으로 콜백 대리자를 만들 필요가 없습니다.

ThreadPool.QueueUserWorkItem(outp, output); 

는 또한 여러 스레드가 동시에 대기열에 액세스하는 경우 ConcurrentQueue를 사용하는 것을 고려 : 그냥 방법을 전달합니다.

관련 문제