コード例 #1
0
 public void RemoveProcess(string name)
 {
     if (_workers.ContainsKey(name))
     {
         ProcessRemoved?.Invoke(this, _workers[name]);
         _workers.Remove(name);
     }
 }
コード例 #2
0
ファイル: JdwpMonitor.cs プロジェクト: yuva2achieve/dot42
        /// <summary>
        /// Process id's found.
        /// </summary>
        private void CallBack(List <int> list)
        {
            List <int> removed;
            var        added = new List <int>();

            lock (pidsLock)
            {
                // Look for removed processes
                removed = pids.Where(x => !list.Contains(x)).ToList();
                foreach (var pid in removed)
                {
                    pids.Remove(pid);
                }
                // Look for added processes
                foreach (var pid in list)
                {
                    if (!pids.Contains(pid))
                    {
                        // Process added
                        pids.Add(pid);
                        added.Add(pid);
                    }
                }
            }

            // Notify event listeners
            foreach (var pid in removed)
            {
                ProcessRemoved.Fire(this, new EventArgs <int>(pid));
            }
            foreach (var pid in added)
            {
                ProcessAdded.Fire(this, new EventArgs <int>(pid));
            }

            // Pulse
            lock (pidsLock)
            {
                receivedInitialUpdate = true;
                Monitor.PulseAll(pidsLock);
            }
        }