2016-02-19 165 views

回答

2

看着ConnectionMultiplexer.IsConnected代碼:

public bool IsConnected 
{ 
    get 
    { 
     var tmp = serverSnapshot; 
     for (int i = 0; i < tmp.Length; i++) 
      if (tmp[i].IsConnected) return true; 
     return false; 
    } 
} 

這似乎是在這裏完成的所有工作正在經歷服務器端點,以查看是否有連接的,至少一個服務器端點。

看着ServerEndPoint.IsConnected代碼:

public bool IsConnected 
{ 
    get 
    { 
     var tmp = interactive; 
     return tmp != null && tmp.IsConnected; 
    } 
} 

這裏所做的所有工作都返回互動(類型PhysicalBridge的)IsConnected值。

看着PhysicalBridge.IsConnected代碼:

public bool IsConnected => state == (int)State.ConnectedEstablished; 

這裏你可以看到完成的所有工作就是返回兩個int的是否相等。

因此,調用ConnectionMultiplexer.IsConnected屬性看起來很少工作。