C#如何单元测试/验证类提供的API是线程安全的?

时间:2011-07-28 16:09:59

标签: c# unit-testing api thread-safety

我是否需要将其置于多线程上下文中?或者只要类的成员不公开为共享资源并且是不可变的和只读的,那就应该证明它。

1 个答案:

答案 0 :(得分:3)

api中的大多数实例方法都不应该是线程安全的。客户端代码应根据上下文决定是否同步访问权限以及粒度。只有静态(类)方法才能提供线程安全性,并且它不应该是强制性的。

为了回答你的问题,我认为测试线程问题并不存在一种琐碎的非依赖于上下文的方式。线程问题,例如数据争用或死锁,大多数时候都很难找到:低概率,非常依赖于输入数据,非确定性等。