我在 MSDN 网站上查看了有关 RegisterWaitForSingleObject
的信息,详情请见此处。在示例中,我发现了下面这个用法 -
ti.Handle = ThreadPool.RegisterWaitForSingleObject(
ev,
new WaitOrTimerCallback(WaitProc),
ti,
1000,
false
);
其中WaitProc
是一个方法 -
public static void WaitProc(object state, bool timedOut)
{
//Code
}
我发现了一些例子,可以通过将
WaitProc
方法替换为类似以下内容的方法来实现相同的效果 - ti.Handle = ThreadPool.RegisterWaitForSingleObject(
ev,
(state, timedOut) => {
//code blah blah
//manipulate state
//manipulate timedOut
}
ti,
1000,
false
);
这里我假定方法
RegisterWaitForSingleObject
需要一个WaitOrTimerCallback
方法,并且编译器理解这个并将(state, timedOut)
视为一个方法,因此变量可以在调用中使用。这个概念叫什么?
它是如何工作的?