上代码
internal class Program
{
static void Main(string[] args)
{
Func1();
GC.Collect();
Console.WriteLine("End");
Console.ReadLine();
}
static void Func1()
{
A a = new A();
a.Callback((str)=>Console.WriteLine(str));
}
static void Callback(Action<string> success)
{
Task.Run(() => {
Task.Delay(10 * 500).Wait();
success("Ok");//为啥能正常运行,是因为闭包延长了success的作用域么?
});
}
}
class A
{
public void Func1()
{
Callback((str) => Console.WriteLine(str));
}
public void Callback(Action<string> success)
{
Task.Run(() => {
Task.Delay(10 * 500).Wait();
success.Invoke("Ok");//为啥能正常运行,是因为闭包延长了success的作用域么?
});
}
}