想象一下,一個名爲foo()的靜態方法需要花費大量的時間來執行。這個方法在一個靜態類中。從不同線程訪問靜態方法
public static class FooClass
{
public static void Foo()
{
Thread.Sleep(120000); // 2 minutes.
}
}
我有兩個同時調用此方法的同一類的實例。由於FooClass
是靜態的,這是否意味着實例2必須等待的Instance1執行完foo()
(假設的Instance1進入foo()
第一)?
據我所知,靜態類包含一個在應用程序池中共享的實例。
你在混合靜態類和靜態方法。另外,你的代碼不會像靜態類中的非靜態方法那樣編譯。 – Euphoric
@Euphoric,請你詳細說明爲什麼我混合靜態類和靜態方法? –
@ kidra.pazzo - 德米特里爲你修好了它,但你有'public void Foo()'而不是'public static void Foo()',它不會編譯爲'FooClass'被標記爲靜態。 – Igor