通常是将外部引用的变量赋值给一个局部变量,这样可以保证在内部使用时不会被释放。示例代码如下:
class Example
{
public void Method()
{
int value = 10;
// incorrect use of captured variable
ThreadPool.QueueUserWorkItem(state => Console.WriteLine(value));
// correct use of captured variable
int localValue = value;
ThreadPool.QueueUserWorkItem(state => Console.WriteLine(localValue));
}
}
在上述示例中,如果直接使用外部变量value,则会出现“捕获的变量在外部作用域中被释放”的问题。因此,我们将value赋值给一个局部变量localValue,并在内部使用该局部变量来避免该问题。
下一篇:捕获的参考错误和CORS策略错误