- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尽管我已经编码了一段时间,但实际上我只是勉强投入所谓的中级编码器中。因此,我了解dispose()的原理,该原理是释放为变量和/或资源保留的内存。我还发现有时使用EF时必须必须dispose()才能使其他操作正常工作。我不明白的是,什么时候需要使用dispose()才需要发布。
例如,我们不处理字符串,整数或 bool 值之类的变量。但是我们越过了一条“线”,需要处置我们使用的变量和/或资源。我不知道这条线在哪里。
知道何时使用dispose()时,是否有一个或几个基本原则适用?
我读了这些SO帖子(a specific situation,more about how rather than when),但是我不觉得我了解知道何时使用dispose()的基础知识。我看到一个评论问,当变量超出范围时是否释放内存,这引起了我的注意,因为直到我看到响应为否,才因为内存超出范围而不会释放它,所以我会认为当超出范围时,它确实会被释放。我不想成为第二个链接中的一个人,称为“笨拙的开发人员”,尽管我认为这有点苛刻。我们中有些人还在学习。
因此,这就是为什么我的问题是“由什么决定何时真正需要dispose()?”
我的问题不是如何之一,而是时是的问题。当然,有关如何使用它的注释,但是即使调用dispose()的方法是Using语句,我仍然需要知道何时。
编辑原始问题:我知道这是一个冗长的解释,因为被标记为重复的注释笔记请求,并且它不是一个问题,我只是不知道如何确保将重点放在我的确切问题上。通常,我们只是在问问题的过程中绊倒。正如我在这篇长篇文章的结尾提到的那样,假设我们到了这个问题,我将在专注于我的问题之后将所有内容全部编辑掉。根据我的阅读,我认为这是一个重要的问题。
建议的“answer”帖子是很棒的帖子,但并未真正回答我的问题。下面的CodeNotFound的注释也提供了一个很棒的链接,但它也不能真正回答我的问题。我提供了有关这些帖子的评论,以尝试帮助完善我的确切问题:
When should I dispose my objects in .NET?:第一个答案以注释开头
Disposable objects represent objects holding a valuable resource which the CLR is not intrinsically aware of.
The point of Dispose is to free unmanaged resources".
If you found it in the .NET framework it's managed. If you went poking around MSDN yourself, it's unmanaged... and you're now responsible for cleaning it up."
get rid of unmanaged resources (because we have to), and
get rid of managed resources (because we want to be helpful)
For anyone who likes the style of this answer (explaining the why, so the how becomes obvious)...
最佳答案
I understand the principle of dispose(), which is to release memory reserved for variables and/or resources.
What I don't understand is just exactly what requires a release, when to employ dispose().
For example, we don't dispose variables like string, integer or booleans. But somewhere we cross 'a line' and the variables and/or resources we use need to be disposed. I don't understand where the line is.
Is there a single principle or a few broad principles to apply when knowing when to use dispose()?
I don't feel like I understand the basics of knowing when to use dispose().
One comment I saw asked if memory is released when a variable goes out of scope, and that got my attention because until I saw the response was no, it doesn't get released just because it goes out of scope, I would have thought that it does get released when it goes out of scope.
So that's why my question is "What determines when a dispose() is really necessary?"
My question is less one of how and more one of when.
When should I dispose my objects in .NET?
How do I know if something falls into the category of what I must dispose?
I just don't know what objects or things I create require that I am responsible for disposing.
most experienced and professional developers know when something they've created needs to be disposed of. I don't understand how to know that.
The point of Dispose is to free unmanaged resources". OK, but my question is how do I know by looking at something that it is an unmanaged resource?
I don't understand how to use that type of explanation to categorize what I need to dispose() and what I don't. There's all kinds of stuff in the .net framework; how do I separate out things that require I dispose() of them? What do I look at to tell me I'm responsible for it?
After that, the answer goes on to speak at great length about how to dispose(), but I'm still stuck back at what needs to be disposed.
my question is about when, meaning what needs to be disposed(), as opposed to when I'm done with it. I know when I'm done with things, I just don't know which things I'm responsible for when I'm done with them.
I was hoping there is a general principle for what must be disposed rather than a long list of specific items which would not be particularly useful for people like me who are looking for simple guidelines.
Again, I get it that memory release is important, and also that a lot of experience and expertise goes into learning why and how, but I'm still left struggling to understand what needs to be disposed. Once I understand what I have to dispose(), then I can begin the struggle to learn how to do it.
So is this still a bad question?
Your patience is a kindness.
WRT scope != lifetime & variables != objects, very helpful.
In VS is it so simple as looking in Object Browser / Intellisense to see if the object includes Dispose()?
using
块仍将起作用。如果出于某种原因要不使用using
显式处理此类对象,则(1)调用“Close”方法或任何被调用的方法,或者(2)强制转换为IDisposable并进行处理。WRT implementing IDisposable @Brian's comment suggests in "normal" coding I likely don't need to. So would I only do that if my class pulled in something unmanaged?
Are there scenarios in which I should not be implementing IDisposable?
关于c# - 何时需要dispose()的规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35369238/
我需要在 nginx-ingress 版本上允许来自多个来源的请求:http://localhost:4200、http://localhost:4242 等1.7.1.但我无法对多个来源执行此操作,
我正在部署我使用 APIGILITY 开发的 API到 IIS。由于 IIS 不支持 .htaccess,我试图从 .htaccess 文件的内容创建 web.config 文件。我使用 IISv7.
我正在尝试更改上面 css 样式中的“宽度”规则。在“inspect element”中你可以看到宽度是1008px。我不希望它是 1008px 但它不会让我在 css 样式中更改它你可以看到它被“删
外部css赋值有2种方法,我用的是第一种;大多数网站使用第二种方法。我想知道我是否做错了! 第一种方法: 为几乎每个 css 规则创建一个类并在任何地方使用它们。 blah blah .f_
RDF使用 WEB 标识符 (URIs) 来标识资源,使用属性和属性值来描述资源 RDF 资源、属性和属性值 RDF使用 WEB 标识符来标识事物,并通过属性和属性值来描述资源。 关于资源、属性
我想挖掘特定的 rhs 规则。文档中有一个示例证明这是可能的,但仅适用于特定情况(如下所示)。先来一个数据集来说明我的问题: input {b=100002} 0.2500000 0.250000
我想让 nginx 从网站根目录(:http://localhost:8080/)提供一个静态文件,但它为我的代理通行证提供服务;它提供“/”规则而不是“=/”。 这是我的 nginx 配置的样子:
根据gnu make documentation , 如果一个规则通过一次调用生成多个目标(例如,一个配方执行一个带有多个输出文件的工具),你可以使用 '&:' 规则语法来告诉 make。但是,当在多
我已阅读Firebase Documentation并且不明白什么是 .contains()。 以下是文档中 Firebase 数据库的示例规则: { "rules": { "rooms"
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我正在尝试做一些多态性练习,但我无法弄清楚这种多态性是如何工作的。我没有找到任何关于这种练习的深入信息。希望大家能给我一些解释。 练习1: class Top { public void m(
为了调试复杂的 XSLT 转换,我将其分为几个部分:首先构建 %.1.xml,然后使用它构建 %.2.xml ,最后构建 %.3.xml。一切正常,但如果我要求 Make 构建最后一个,Make 总是
我尝试了 hacerrank 的 slove 练习 Click我不知道如何添加这些规则: ► 它可以包含 4 个一组的数字,并用一个连字符“-”分隔。 ► 不得有 4 个或更多连续重复数字。 这是我的
我正在尝试编写一个小测验,我希望“再试一次”按钮遵循与“else”之前的“if”语句相同的规则 using System; public class Program { public stat
在我的 Spring/Boot Java 项目中,我有一组服务方法,例如以下一个: @Override public Decision create(String name, String descr
我正在阅读 Covariant virtual function .上面写着 假设 B::f 覆盖了虚函数 A::f。如果满足以下所有条件,A::f 和 B::f 的返回类型可能不同: 1) The
我工作的公司想要分发(在公共(public)链接中)具有内部签名的应用程序。我很确定 Apple 否认这种事情,但我在官方文档/契约(Contract)中没有找到任何相关信息。 有谁知道它到底是如何工
我是 CSS 新手。我观察到一个奇怪的 CSS 行为,其中一个元素具有以下 CSS 属性 .container .header{ color: #FFFFFF; font-size: 2em;
这个问题在这里已经有了答案: Is there a CSS selector for elements containing certain text? (21 个答案) 关闭 7 年前。
我有以下 CSS: workoutcal.css: .errorlist{ color:red; } 以下基本模板: base.html: {% load static %} {
我是一名优秀的程序员,十分优秀!