41得票3回答
为什么BCL中没有AutoResetEventSlim?

为什么BCL中没有AutoResetEventSlim类? 是否可以使用ManualResetEventSlim来模拟?

13得票3回答
Directory.GetParent中存在Bug吗?

我被 System.IO.Directory.GetParent 方法的一个非常奇怪的行为打了个措手不及:string path1 = @"C:\foo\bar"; DirectoryInfo parent1 = Directory.GetParent(path1); Console.Writ...

14得票1回答
System.Reflection.RuntimeReflectionExtensions中的方法的目的是什么?

自 .NET 4.5(2012)以来,一些新的扩展方法出现了,来自 System.Reflection.RuntimeReflectionExtensions 类。但是,这些新方法似乎没有给我们带来什么新东西。例如:static void Main() { var prop1 = ty...

7得票2回答
在您自己的类中使用System.*命名空间是否被认为是不良实践?

我有一个名为ConfigurationElementCollection<T>的类 它是System.Configuration.ConfigurationElementCollection的泛型实现 它存储在我们解决方案的Project.Utility.dll中,但我已将其定...

7得票3回答
为什么我们要在Encoder.GetBytes方法中使用flush参数

此链接解释了Encoder.GetBytes方法,其中有一个名为flush的布尔参数也有解释。flush的解释如下: true表示此编码器可以在转换结束时刷新其状态;否则为false。为确保正确终止一系列块的编码字节,最后一次调用GetBytes可以指定flush值为true。 但我不理解...

14得票1回答
SemaphoreSlim.WaitAsync的取消操作会保持信号量锁。

在我们的其中一个课程中,我们大量使用SemaphoreSlim.WaitAsync(CancellationToken)和其取消操作。 当一个挂起的WaitAsync调用在SemaphoreSlim.Release()调用后不久被取消(我指的是在ThreadPool有机会处理排队项目之前),...

7得票5回答
IEnumerable/IEnumerable<T> 接口为什么只有 MoveNext 方法?

基本上,我想知道为什么微软决定实现一个只支持向前移动的枚举器:MoveNext()。 这个广泛应用于.NET框架中的接口也强制执行MovePrevious不是更灵活吗? 我可以想象它会让微软更容易实现Linq.Reverse并提高性能效率,但我不确定它是否会减慢其他东西或对所有其他内容产生...

14得票3回答
ConcurrentBag<T>实现中是否存在内存泄漏问题?

可能重复的问题: ConcurrentBag中可能会有内存泄漏吗? 编辑1: 实际问题是:您能否确认这一点,或者我的示例有误,并且我漏掉了明显的内容? 我曾认为ConcurrentBag仅是未排序列表的替代品。但我错了。 ConcurrentBag将自己添加到创建线程的Thr...

8得票2回答
不一致的行为:在 foreach 循环中调用 List<T>.Sort 方法时不会抛出异常。

我们知道,在foreach循环中更改集合会引发以下异常: InvalidOperationException: Collection was modified; enumeration operation may not execute. 但是有一种方法的行为不同:List&lt;T&...

7得票9回答
.NET是否能够在不使用Object类型的情况下正常运行?

我问这个问题是因为使用Object似乎是解决某些问题的简单方法,比如“我没有特定的类型,所以使用Object”等。 此外,让我好奇的原因是我的一位同事告诉我,如果.NET是一个真正的面向对象的平台,那么它就不必像Object一样具有捕获所有类型的功能。 那么,如果.NET没有Object类...