コード例 #1
0
        public static void Remove(IntPtr formHandle)
        {
            if (!ContainsKey(formHandle))
            {
                return;
            }

            try
            {
                wndHandleHashtable.Remove(wndHandleHashtable.First(x => x.Key.Equals(formHandle)));
            }
            catch (Exception ex)
            {
                Lib.Win.Data.Env.WriteToLog(ex, "Error while removing " + formHandle.ToString() + " from wndHandleHashTable");
            }

            if (timer != null && wndHandleHashtable.Count == 0)
            {
                timer.Elapsed -= timer_Elapsed;
                timer.Stop();
                timer = null;
            }
        }
コード例 #2
0
 internal static void AddPluginToRunning(IPlugin3 plugin, WowProcess process)
 {
     lock (AddRemoveLock)
     {
         if (!RunningPlugins.Contains(plugin))
         {
             _pluginContainers.First(l => l.Plugin.GetType() == plugin.GetType()).IsRunning = true;
             try
             {
                 plugin.OnStart(new GameInterface(process));
                 PluginWoW[plugin.Name] = process.ProcessID;
                 PluginsUsageStats[plugin.Name].Add(DateTime.UtcNow);
                 SavePluginUsageStats();
                 log.Info($"{process} [{plugin.Name}] Plug-in is started");
             }
             catch (Exception ex)
             {
                 log.Error($"Plug-in OnStart error [{plugin.Name}]: {ex.Message}");
             }
             Notify.TrayPopup(nameof(AxTools), "Plug-in <" + plugin.Name + "> is started", NotifyUserType.Info, false, plugin.TrayIcon);
             PluginStateChanged?.Invoke(plugin);
         }
     }
 }
コード例 #3
0
 public string FetchJobForScanning()
 {
     if (mSmallJobs.Count != 0)
     {
         if (SmallCounter != 0 || (mMediumJobs.Count == 0 && mBigJobs.Count == 0))
         {
             var    job = mSmallJobs.First();
             object temp;
             mSmallJobs.TryRemove(job.Key, out temp);
             SmallCounter--;
             if (SmallCounter < 0)
             {
                 SmallCounter = 0;
             }
             return(job.Key.mFilePath);
         }
     }
     if (mMediumJobs.Count != 0)
     {
         if (MediumCounter != 0 || mBigJobs.Count == 0)
         {
             var job = mMediumJobs.First();
             mMediumJobs.RemoveAt(0);
             MediumCounter--;
             if (MediumCounter < 0)
             {
                 MediumCounter = 0;
             }
             return(job.mFilePath);
         }
     }
     if (mBigJobs.Count != 0)
     {
         var job = mBigJobs.First();
         mBigJobs.RemoveAt(0);
         SmallCounter  = 5;
         MediumCounter = 3;
         return(job.mFilePath);
     }
     return(null);
 }
コード例 #4
0
        public static void Remove(Form form)
        {
            if (!ContainsKey(form.Handle) && !Contains(form))
            {
                return;
            }

            try
            {
                if (ContainsKey(form.Handle))
                {
                    wndHandleHashtable.Remove(wndHandleHashtable.First(x => x.Key.Equals(form.Handle)));
                }
            }
            catch (Exception ex)
            {
                Lib.Win.Data.Env.WriteToLog(ex, "Error while removing " + form.Handle.ToString() + " from wndHandleHashTable");
            }

            try
            {
                if (Contains(form))
                {
                    answerCollection.Remove(answerCollection.First(x => x.Form.Equals(form)));
                }
            }
            catch (Exception ex)
            {
                Lib.Win.Data.Env.WriteToLog(ex, "Error while removing " + form.Name.ToString() + " from wndHandleHashTable");
            }

            if (timer != null && (wndHandleHashtable == null || wndHandleHashtable.Count == 0) && (answerCollection == null || answerCollection.Count == 0))
            {
                timer.Elapsed -= timer_Elapsed;
                timer.Stop();
                timer = null;
            }
        }