8得票2回答
当线程退出时如何处理ThreadLocal的值?

假设我有一个一次性类型: class MyDisposable : IDisposable { public void Dispose() { } } 我希望每个线程都拥有自己的本地类副本,每个线程一个: private readonly ThreadLocal<MyDi...

10得票2回答
在使用嵌套方法、yield return 和 using 结合时出现了奇怪的执行顺序

我不明白为什么Program.Fetch1和Program.Fetch2的执行顺序不完全相同。唯一的区别是Program.Fetch1通过调用Program.Fetch来执行实际的获取操作。class Program { static IEnumerable<int> Fe...

7得票2回答
交易范围类似的功能

我希望设置与交易范围非常相似的东西,它会在服务上创建一个版本,并将在范围结束时删除/提交。事务范围内运行的每个SQL语句都会在一些连接池/事务存储中查找以确定其是否在范围内,并做出适当反应。调用者不需要在每次调用时传递交易。我正在寻找这种功能。 下面是更多关于此的信息:https://blo...

7得票3回答
如何处理ManualResetEvent?

您好,当我使用以下代码时: myManualResetEvent.Dispose(); 编译器报错如下: 'System.Threading.WaitHandle.Dispose(bool)' is inaccessible due to its protection level....

49得票2回答
Process.Dispose()实际上是做什么的?

在C#中,class Process继承自class Component,后者实现了IDisposable接口,因此我可以在任何Process对象上调用Dispose()方法。我真的必须这样做吗?我如何知道是否真的需要这样做? 假设我有以下代码: var allProcesses = Sys...

21得票4回答
我该如何对终结器进行单元测试?

我有一个类,它是一个 IDisposable 对象的装饰器(我省略了它添加的内容),自己使用了一种常见的模式实现了 IDisposable。public class DisposableDecorator : IDisposable { private readonly IDispos...

13得票2回答
有效关闭WCF 4通道的正确方法

我正在使用以下方式关闭WCF 4通道。这是正确的做法吗?using (IService channel = CustomChannelFactory<IService>.CreateConfigurationChannel()) { channel.Open();...

14得票5回答
可处理对象的标准集合

我有一些 IDisposable 对象存储在一个查找表中(目前使用的是普通的 Dictionary<>),但为了简化代码和避免错误,我正在寻找拥有其所持有的项目的集合类,并且为了避免重复造轮子 - 是否已经存在这样的类? 规格应该是: - 集合必须是可释放的,当它被释放时,所有包含的项...

10得票4回答
如何正确实现IDisposable接口

作为开发人员,我在编写C#代码时看到很多这样的代码,试图通过将变量设置为null或在其自己的类Dispose()方法中调用Dispose()(例如DataSet)来帮助GC,以至于我一直在想是否有必要在托管环境中实现它。 在其设计模式中,这段代码是否是浪费时间?class MyClass :...

7得票4回答
VB.NET - 在实现IDisposable时,是否应该添加Finalize方法?

在Visual Studio中,当我输入"Implements IDisposable"这一行时,IDE会自动添加以下内容: disposedValue成员变量 Sub Dispose() Implements IDisposable.Dispose Sub Dispose(ByVal d...