IDisposable是Microsoft .NET Framework的基类库(BCL)中的一个接口。它旨在提供一种在.NET应用程序代码中释放非托管资源的通用,确定性方法。
我有以下类,它是 IDisposable 对象的装饰器(我省略了它添加的内容),它本身使用通用模式实现 IDisposable: 公共课DisposableDeco...
我有一个对象,其中包含一次性对象作为成员。 公开课我的班级 { 私有 MyDisposableMember 成员; 公共做某事 { 使用 (成员 = new MyDisposableMemb...
基本上我有一些如下所示的函数: 我的班级 { 无效 foo() { 使用(SomeHelper助手= CreateHelper()) { // 使用助手做一些事情 ...
这是我所拥有的: 公共无效FindByID(字符串ID) { 使用(解析器解析器=新解析器()){ if ( parser.LoadUserById(id)) { ID = parser.FindID(); 名称 = 解析器。
我应该将 new HttpRequestMessage() 包装在 using 语句中吗?
我找到了以下代码: 使用 (var requestMessage = new HttpRequestMessage(HttpMethod.Delete, 端点)) { ... HttpResponseMessage响应=等待_client.SendAsync(requestMessage); ...
为了更好地理解 .NET 网络部分的工作原理,我将浏览 TcpListener(文档、参考源)类的参考源。引起我注意的是它拥有
我需要强制使用“using”来处置类的新实例。 公共类 MyClass:IDisposable { ... } using(MyClass obj = new MyClass()) // 强制使用“using” { }
在(可能)空对象上使用 using 语句是否安全? 考虑以下示例: 类测试{ IDisposable GetObject(字符串名称) { // 如果没有找到则返回null ...
当父类也实现 IDisposable 时,在子类上实现 IDisposable
我有一个父类和子类,它们都需要实现 IDisposable。虚拟(和base.Dispose()?)调用应该在哪里发挥作用?当我只是重写 Dispose(bool disducing) 调用时,它...
如果不能保证垃圾收集器会调用它,为什么我们需要一次性模式中的终结器?
我的问题是:在C#中,如果不能保证垃圾收集器会调用它,为什么我们需要一次性模式中的终结器? 我在理解哲学方面遇到问题......
我正在迭代 ManageObjectCollection。(它是 WMI 接口的一部分)。 然而重要的是下面这行代码。 : foreach(结果中的 ManagementObject 结果) { //c...
如何在我的 Dispose() 中正确处理 IDisposable 项目列表?
我有一堂这样的课: 公共类 MyFolderRefresher { 公共异步任务 OnRename(RenamedEventArgs e) { // 做一点事 } } 公共类 MyDisposableListOfFileSystemWatchers :
Icon.FromHandle:我应该处理它,还是调用DestroyIcon?
我使用Win32 SHGetFileInfo 来获取属于某个文件的图标的句柄。 stackoverflow 上也有很多关于如何执行此操作的描述,例如:Get Iconsused by shell 之后
C# .NET Core - 在外部声明时,一次性对象是否会在 try/catch 块中持续存在?这是不好的做法吗?
尝试通过 Serilog 上下文、using 语句和一些 try/catch 块来理解这里的最佳实践。当我记录任何内容时,我试图在 Serilog 上下文中包含一些数据的 ID
不再被引用的父对象,如果父对象本身持有存活引用,是否会被GC回收?
如果一个不再被引用的父对象拥有对仍然存在的对象的引用,那么它是否就没有资格被收集,就像在其他 viewmod 中引用的单例服务一样......
任务中 IDisposable T 的 IDisposable 和/或 IAsyncDisposable 模式<T>
如果我有一个类,其中字段是任务的实例,并且该任务返回一个实现 IDisposable 的类,那么在实例上实现 IDisposable (+/- IAsyncDisposable) 的模式是什么
如何在包含多个一次性对象的类中正确实现 IDispose 和 IAsyncDispose
我需要实现一个管理多个资源生命周期的类。这些资源可能有不同的 dipose 模式实现: 使用 IDispose 和
在 SerialPort 的 main() 中添加事件处理程序
我尝试将事件处理程序订阅到数据接收事件。似乎我无法指定事件处理程序函数名称。我不明白为什么 myComPort.DataReceived += 新
假设我有一个方法 foo,它返回一个 ValueTuple,其中它的成员之一是一次性的,例如 (IDisposable, int)。 确保退回的一次性物品完好无损的最佳方法是什么
System.Threading.Monitor.Enter(SyncRoot) 未按预期工作,为什么?
我已经用 BlockingEnumerator 类完成了 ObservableCollection 多线程“ObsCollMt”,当使用“ForEach”枚举项目时,该类应该锁定底层 _list。 我...