我正在制作一个有很多项目的解决方案。我有一个托管我的实用程序方法的项目。所有其他项目都在使用这个项目方法。
我想知道是否可以同时从多个项目调用静态方法?
另外,在我的一个方法中,我有一个可选参数来执行Thread.Sleep()
如果一个项目使用sleep调用此方法而另一个项目同时没有睡眠,会发生什么?
我对这个结构感到很困惑!
答案 0 :(得分:3)
我想知道是否可以同时从多个项目调用静态方法?
这取决于方法的作用。 您需要承担责任,确保可以同时从多个线程调用它。 (呼叫者是否在同一个项目中几乎总是完全不相关。)
只要您不以危险的方式修改任何共享状态 - 例如添加到List<T>
没有任何同步 - 你应该没事。这一切都取决于你在做什么。
每个调用在具有一组单独的参数和局部变量方面是独立的。现在,如果其中一些参数引用其他线程可见的对象,那就是另一回事......但我们无法从你的问题中说出这一点。
请注意,此处使用Thread.Sleep
几乎无关紧要。不可否认,如果你有一些同步(例如通过lock
),那么拥有锁的线程就会非常不愉快......然后睡觉......
答案 1 :(得分:1)
正如函数所说,线程 Sleep,当前调用线程将在调用期间休眠。如果你有几个线程调用这个函数,他们都会睡觉。如果您的所有项目都是从同一个线程运行的,那么它们将永远不会同时调用此函数,并且会串行休眠。