次のコードがあるとします。
void DoStuff( SomeClass withObject )
{
Action helper = () =>
{
withObject.RunHelper();
}
lock( withObject ) {
actuallyDoStuff( helper );
}
}
void actuallyDoStuff( Action action )
{
action();
}
ご覧のとおり、Action helperコードはの外にありlockます。これは名前のない関数であると思いますので、それを呼び出すと、のAction外部で制御を取得できず、持続します。locklock
しかし、私にはわかりません。
lockコントロールが内部にある間、は解放または持続されますAction helperか?