C#:从单独的线程访问时是否需要锁定静态类?

时间:2010-06-14 19:12:49

标签: c# multithreading static-methods

我有一个带有一些方法的静态类,它只接受一个字节数组,解析它并返回一个结构。我需要从许多单独的线程中调用这些方法。我是否需要在方法中使用lock()或某种线程安全性?我无法理解它。

3 个答案:

答案 0 :(得分:3)

如果您的方法是reentrant,则不需要任何锁定。

通常,只要多个线程访问共享资源,您就需要锁定。当方法只是从其参数计算某些东西而不访问任何共享资源时,就没有什么可以锁定的。

答案 1 :(得分:0)

是的,lock阻止多个线程同时访问相同的数据,这通常会导致不一致/不可预测的行为。

答案 2 :(得分:0)

如果您的方法有共享资源,那么您需要同步访问它。在这种情况下,没有共享资源,因此无需锁定任何内容。