コード例 #1
0
ファイル: ProcessComponent.cs プロジェクト: Clawed/ProjectHub
        public void Run(object State)
        {
            try
            {
                if (Disabled)
                {
                    return;
                }

                if (TimerRunning)
                {
                    TimerLagging = true;
                    return;
                }

                ResetEvent.Reset();
                List <UserCache> CacheList = ProjectHub.GetGame().GetCacheManager().GetUserCache().ToList();

                if (CacheList.Count > 0)
                {
                    foreach (UserCache Cache in CacheList)
                    {
                        try
                        {
                            if (Cache == null)
                            {
                                continue;
                            }

                            UserCache Temp = null;

                            if (Cache.IsExpired())
                            {
                                ProjectHub.GetGame().GetCacheManager().TryRemoveUser(Cache.Id, out Temp);
                            }

                            Temp = null;
                        }
                        catch (Exception Error)
                        {
                            Logging.LogError(Error.ToString());
                        }
                    }
                }

                CacheList = null;
                List <Habbo> CachedUsers = ProjectHub.GetUsersCached().ToList();

                if (CachedUsers.Count > 0)
                {
                    foreach (Habbo Data in CachedUsers)
                    {
                        try
                        {
                            if (Data == null)
                            {
                                continue;
                            }

                            Habbo Temp = null;

                            if (Data.CacheExpired())
                            {
                                ProjectHub.RemoveFromCache(Data.Id, out Temp);
                            }

                            if (Temp != null)
                            {
                                Temp.Dispose();
                            }

                            Temp = null;
                        }
                        catch (Exception Error)
                        {
                            Logging.LogError(Error.ToString());
                        }
                    }
                }

                CachedUsers  = null;
                TimerRunning = false;
                TimerLagging = false;
                ResetEvent.Set();
            }
            catch (Exception Error)
            {
                Logging.LogError(Error.ToString());
            }
        }