此代码是否会造成内存泄漏?
WebClient client = new WebClient();
client.DownloadDataCompleted += (sen, args) => {
};
client.DownloadData("http://foo.bar");
Run Code Online (Sandbox Code Playgroud)
因为没有办法真正取消订阅活动.我可以说我们绝不能使用lambda进行活动订阅吗?
Jon*_*eet 11
只要你没有保留WebClient自身,它就不会产生内存泄漏- 当它有资格进行垃圾收集时,也可以收集事件处理程序目标.你通常不会WebClient长时间保持这种状态 - 它们通常被用作一次性物体.
另外,lambda表达式没有使用任何变量this,所以它可能是由一个没有目标的静态方法实现的......我假设你关注的真实情况有一个更有趣的lambda体.
| 归档时间: |
|
| 查看次数: |
3227 次 |
| 最近记录: |