private void UpdateValidateProgressBarProxyManager(object sender, ProgressChangedEventArgs args) { this.progressBarProxyManager.Value = args.ProgressPercentage; ProxyInfo pi = args.UserState as ProxyInfo; lock (proxiesTable) { if (pi != null && pi.RTT < 0) { DataRow dr; if (proxiesRows.TryGetValue(pi.ProxyAddress, out dr)) { proxiesTable.Rows.Remove(dr); proxiesRows.Remove(pi.ProxyAddress); } } else if (pi != null) { DataRow dr; if (proxiesRows.TryGetValue(pi.ProxyAddress, out dr)) { if (dr != null) { dr["Latency"] = new LatencyColumnValue(pi.RTT); } } } } if (dgProxyList.Rows.Count > 0) { dgProxyList.FirstDisplayedScrollingRowIndex = 0; } }
// Public Methods (2) public int CompareTo(object other) { LatencyColumnValue o = other as LatencyColumnValue; // 1 < 2 < 3 < -1 < 0 if ((rtt > 0 && o.rtt <= 0) || (rtt <= 0 && o.rtt > 0)) { return(o.rtt - rtt); } else { return(rtt - o.rtt); } }
private void DoPendingProxyListChanged(object sender, PendingProxyListChangedEventHandlerArgs args) { lock (proxiesTable) { proxiesRows.Clear(); proxiesTable.Rows.Clear(); List <ProxyInfo> proxies = new List <ProxyInfo>(ins.ProxyManager.PendingProxies); foreach (ProxyInfo pi in proxies) { if (!proxiesRows.ContainsKey(pi.ProxyAddress)) { DataRow dr = proxiesTable.NewRow(); dr["Address"] = pi.ProxyAddress; dr["Latency"] = new LatencyColumnValue(pi.RTT); dr["Location"] = pi.Location; proxiesTable.Rows.Add(dr); proxiesRows[pi.ProxyAddress] = dr; } } } }