我有一个包含多个静态方法的静态类。
private static Session _session = new Session();
public static void Method1() {
if(_session != null)
_session.Action();
}
public static void Method2() {
if(_session != null)
_session.Action();
}
public static void Method3() {
if(_session != null)
_session.Action();
}
public static void Method4(string path) {
_session.Disconnect();
_session.Connect(new Config(path));
}
Method1、Method2和Method3都是完全线程安全的,它们可以在任意数量的线程中同时被安全地调用。实际上,出于性能原因,我需要允许多个线程并发调用这三个方法。
问题在于,当调用Method4()时,Method1、Method2和Method3有可能抛出异常。 那么,在调用Method4()时如何允许多个线程调用Method1、Method2和Method3,同时也阻止它们调用这三个方法呢?