1

我正在研究一个包含很多项目的解决方案。我有一个托管我的实用程序方法的项目。所有其他项目都使用此项目方法。

我想知道是否可以同时从多个项目调用静态方法?

另外,在我的一种方法中,我有一个可选参数来执行Thread.Sleep()如果一个项目调用此方法并同时使用睡眠和另一个没有睡眠会发生什么?

我真的被这个结构弄糊涂了!

4

2 回答 2

3

我想知道是否可以同时从多个项目调用静态方法?

好吧,这取决于方法的作用。需要负责确保可以同时从多个线程调用它。(调用者是否在同一个项目中几乎总是完全不相关的。)

只要您不以危险的方式修改任何共享状态 - 例如添加到 aList<T>而没有任何同步 - 您应该没问题。这一切都取决于你在做什么。

每个调用在具有单独的参数集和局部变量方面都是独立的。现在,如果其中一些参数引用其他线程可见的对象,那是另一回事......但我们无法从你的问题中看出这一点。

请注意,Thread.Sleep此处的使用几乎无关紧要。诚然,如果您有一些同步(例如 via lock),那么拥有锁的线程然后休眠将是非常不愉快的......

于 2012-11-21T12:50:42.763 回答
1

正如函数所说,线程休眠,当前调用线程将在调用期间休眠。如果你有多个线程调用这个函数,它们都会休眠。如果您的所有项目都从同一个线程运行,它们将永远不会同时调用此函数,并且会串行休眠。

于 2012-11-21T12:50:43.543 回答