コード例 #1
0
        private string GetStatus(NetworkPerformanceData perfData, out bool online)
        {
            string status = string.Empty;

            if (perfData.BytesSent == 0 && perfData.BytesReceived == 0)
            {
                status = "掉线了";
                online = false;
            }
            else if (perfData.BytesSent < 10 && perfData.BytesReceived < 30)
            {
                status = "安全区";
                online = true;
            }
            else
            {
                status = "战斗中";
                online = true;
            }
            status += " ";
            return(status);
        }
コード例 #2
0
        public IDictionary <int, NetworkPerformanceData> GetNetworkPerformanceData()
        {
            Dictionary <int, NetworkPerformanceData> perfDataDic = new Dictionary <int, NetworkPerformanceData>();

            var timeDifferenceInSeconds = (DateTime.Now - m_EtwStartTime).TotalSeconds;

            lock (counterLock)
            {
                foreach (var counters in m_CountersDic)
                {
                    NetworkPerformanceData networkData = new NetworkPerformanceData
                    {
                        BytesReceived = Convert.ToInt64(counters.Value.Received / timeDifferenceInSeconds),
                        BytesSent     = Convert.ToInt64(counters.Value.Sent / timeDifferenceInSeconds)
                    };
                    perfDataDic.Add(counters.Key, networkData);
                }
            }

            // Reset the counters to get a fresh reading for next time this is called.
            ResetCounters();

            return(perfDataDic);
        }