В документации MSDN я видел как A, так и B. Как оба они оба используют WaitCallback? Почему различный синтаксис?Нужно ли мне WaitCallback?
А.
static void Main()
{
ThreadPool.QueueUserWorkItem(Foo);
}
static void Foo(Bar bar)
{
//do Stuff
}
B.
static void Main()
{
Bar bar = new Bar();
ThreadPool.QueueUserWorkItem(new WaitCallBak(Foo), bar);
}
static void Foo(Bar bar)
{
//do Stuff
}
Спасибо. Предполагая, что я исправлю подпись Foo, могу ли я обойтись без выражения лямбда и придерживаться того, как я прошел Foo? Я спрашиваю, потому что MSDN использует этот синтаксис – AfterWorkGuinness
@AfterWorkGuinness Оба идентичны - так что да, вы можете делать в любом случае :) – Rob
Как вы можете отправить функцию ThreadPool, которая не является статической? Я видел этот http://stackoverflow.com/questions/5786501/how-to-use-threadpool-queueuserworkitem-with-non-static-methods, но почему он работает, если он не соответствует сигнатуре WaitCalback? – AfterWorkGuinness