2012-03-26 7 views
5

는 그 방법이 방법을 사용하는 것을 시도하고있다.ThreadPool.QueueUserWorkItem 사용 사례

오류 CS1593 : System.Threading.WaitCallback' does not take 0 '인수

인수없이 그것을 수행하는 방법에 어떤 생각

위임? , 어떤 대안? 익명의 매개 변수에 대해 상관하지 않는 경우

ThreadPool.QueueUserWorkItem(delegate 
{ 
    while(!paused) 
    { 
     ThreadPool.QueueUserWorkItem(delegate {...}); 
    } 
}); 

: 대신 익명의 방법을

ThreadPool.QueueUserWorkItem(ignored => 
{ 
    while(!paused) 
    { 
     ThreadPool.QueueUserWorkItem(alsoIgnored => {...}); 
    } 
}); 

또는 사용

+0

ThreadPool.QueueUserWorkItem ((state) => {...); 콜백에는 개체 매개 변수가 필요합니다. 비록 당신이 그것을 사용하지 않아도됩니다. –

답변

12

당신은 람다 식의 매개 변수를 제공 할 수 있고, 그것을 무시 메서드를 사용하는 경우에는 해당 메서드를 명시 할 필요가 없습니다.

0

전달하는 대리인은 하나의 인수를 취해야합니다. 이를 무시하려면 대괄호를 변수 이름으로 바꿀 수 있습니다.

2

ThreadPool.QueueUserWorkItem은 매개 변수로 System.Threading.WaitCallback 대리자가 필요합니다. 이 델리게이트에는 하나의 매개 변수가 있지만 람다 식에는 no가 있습니다. 매개 변수를 무시하려면 다음을 사용할 수 있습니다.

ThreadPool.QueueUserWorkItem(_ => 
{ 
    //... 
});