C #: нет перегрузки для «функции» соответствует делегату System.Threading.WaitCallBack - PullRequest
0 голосов
/ 20 октября 2018

В последнее время я использую потоки, и ошибка (C #: перегрузка для 'Generic_Function' соответствует делегату System.Threading.WaitCallBack) меня немного смущает.

Сначала я подумал, что нужноЕсли параметр был передан, то я понял, что он может быть пустым.

ThreadPool.QueueUserWorkItem(new WaitCallback(Generic_Function), null);

Не должна быть функция, определяемая как:

void Generic_Function(){
 //Code here
}

Однако я получаю ошибку.Я что-то здесь упускаю, и я ошеломлен.Я пытался читать документы, но, думаю, я не совсем понял это.Буду признателен, если кто-нибудь сможет объяснить.Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Если по каким-либо причинам вы не можете изменить Generic_Function подпись, вы можете заключить вызов в лямбду:

ThreadPool.QueueUserWorkItem(_ => Generic_Function());
0 голосов
/ 20 октября 2018

Согласно документации , WaitCallback определяется следующим образом:

public delegate void WaitCallback(object state);

Таким образом, вы можете внести эту модификацию, если хотите, чтобы ваш код работал:

void Generic_Function(object state)
{
    //Code here
}
...