【发布时间】:2012-11-01 19:11:48
【问题描述】:
MSDN 声明该方法返回
如果方法成功则为真 排队; NotSupportedException 是 如果工作项未排队,则抛出。
出于测试目的,如何获取返回false的方法?或者它只是一个“次优”的类设计?
【问题讨论】:
-
+1:我喜欢“次优”形容词 :)
标签: .net multithreading concurrency threadpool
MSDN 声明该方法返回
如果方法成功则为真 排队; NotSupportedException 是 如果工作项未排队,则抛出。
出于测试目的,如何获取返回false的方法?或者它只是一个“次优”的类设计?
【问题讨论】:
标签: .net multithreading concurrency threadpool
在查看 Reflector 中的源代码时,似乎代码中唯一可能返回“false”的部分是对以下内容的调用:
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool AdjustThreadsInPool(uint QueueLength);
【讨论】:
这可能是“保留以备将来使用”的情况。您可能希望将其视为失败,但很难测试。
我几乎将此方法视为 void/Sub。
【讨论】:
可以想象,当任务并行库 (TPL) 到来时,整个 API(线程池)都会过时。
【讨论】:
如果方法成功排队,则为真;如果工作项未排队,则会引发 NotSupportedException。
像对待 NotSupportedException 一样对待 return false。
要让它返回 false,请使用模拟方法或对象。
您想测试您自己编写的代码,而不是底层的 Windows 代码。我敢肯定,微软已经为此进行了大量测试。
【讨论】: