示例#1
0
        protected void DiffLoaded(HeapDiff diff, string filename)
        {
            Modules        = diff.Modules;
            FunctionNames  = diff.FunctionNames;
            Deltas         = diff.Deltas;
            FilteredDeltas = null;
            StackGraph     = null;

            TracebackFilter.AutoCompleteItems = FunctionNames;

            Text     = "Diff Viewer - " + filename;
            Filename = filename;

            RefreshModules();

            if (PendingRefresh != null)
            {
                PendingRefresh.Dispose();
            }
            PendingRefresh = Start(RefreshDeltas());

            MainMenuStrip.Enabled = true;
            LoadingPanel.Visible  = false;
            MainSplit.Visible     = true;
            Timeline.Enabled      = true;
            UseWaitCursor         = false;
        }
示例#2
0
        public void Dispose()
        {
            _WakePrevious = null;

            if (_AwaitingCLRTask != null)
            {
                _AwaitingCLRTask.TryCancelScope();
                _AwaitingCLRTask = null;
            }

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

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

            if (_Future != null)
            {
                _Future.Dispose();
                _Future = null;
            }
        }
示例#3
0
 public void Dispose()
 {
     if (_DirtyTask != null)
     {
         _DirtyTask.Dispose();
     }
 }
示例#4
0
文件: Util.cs 项目: jli94/Fracture
        public void Dispose()
        {
            if (OnEarlyDispose != null)
            {
                OnEarlyDispose();
                OnEarlyDispose = null;
            }

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

            if (_SequenceFuture != null)
            {
                if (!_SequenceFuture.Completed)
                {
                    _SequenceFuture.Dispose();
                }
            }

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

            _Task      = null;
            _Scheduler = null;
        }
示例#5
0
 public void Dispose()
 {
     Gateway.Endpoints[Settings.Name] = null;
     QueueTaskFuture.Dispose();
     Session.CloseStream();
     Session.Dispose();
 }
示例#6
0
        private void DisposeInstance()
        {
            if (Instance != null)
            {
                Instance.Dispose();
            }

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

            PendingFilter     = CurrentFilter = null;
            CurrentFilterData = null;

            HeapFilter.Filter = null;
        }
示例#7
0
 public void StopListening()
 {
     if (ActiveListener != null)
     {
         ActiveListener.Dispose();
         ActiveListener = null;
     }
 }
示例#8
0
 private void SearchDialog_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (Connection != null)
     {
         Connection.Dispose();
         Connection = null;
     }
     if (ActiveSearch != null)
     {
         ActiveSearch.Dispose();
         ActiveSearch = null;
     }
     if (ActiveQueue != null)
     {
         ActiveQueue.Dispose();
         ActiveQueue = null;
     }
 }
示例#9
0
        protected void StartSendTask()
        {
            if (SendTaskFuture != null)
            {
                SendTaskFuture.Dispose();
                SendTaskFuture = null;
            }

            SendTaskFuture = Program.Scheduler.Start(SendTask(), TaskExecutionPolicy.RunAsBackgroundTask);
        }
示例#10
0
        public void Dispose()
        {
            foreach (var barrier in Barriers)
            {
                barrier.Dispose();
            }

            Barriers.Clear();
            Composite.Dispose();
        }
示例#11
0
        private void RefreshStatus()
        {
            ExecutableStatus.Text = String.Format(
                "Status: {0}",
                (Instance != null) ? (Instance.Running ? "Running" : "Exited") : "Not Started"
                );

            bool running = (Instance != null) && (Instance.Running);

            CaptureSnapshot.Enabled = running;

            if ((!running) && (AutoCaptureFuture != null))
            {
                AutoCaptureFuture.Dispose();
                AutoCaptureFuture = null;
            }

            RefreshLaunchEnabled();
        }
示例#12
0
        public override void Dispose()
        {
            base.Dispose();

            HttpTaskFuture.Dispose();
            GCTaskFuture.Dispose();

            foreach (var ps in States.Values)
            {
                ps.Dispose();
            }
            States.Clear();

            HttpListener.Stop();
            HttpListener.Close();

            Program.RemoveCustomMenu(CustomMenu);
            CustomMenu.Dispose();
        }
示例#13
0
        public void EndCombat()
        {
            if (!_InCombat)
            {
                throw new InvalidOperationException("Attempted to end combat while not in combat.");
            }

            _CombatTarget = null;
            _InCombat     = false;
            _CombatTask.Dispose();
        }
示例#14
0
        public virtual void Dispose()
        {
            if (_ThinkTask != null)
            {
                _ThinkTask.Dispose();
                _ThinkTask = null;
            }

            if (_EventDispatchTask != null)
            {
                _EventDispatchTask.Dispose();
                _EventDispatchTask = null;
            }
        }
        public void Dispose()
        {
            if (Data != null)
            {
                Data.Dispose();
                Data = null;
            }

            if (_SendFuture != null)
            {
                _SendFuture.Dispose();
                _SendFuture = null;
            }
        }
示例#16
0
文件: Util.cs 项目: jli94/Fracture
        void ISchedulable.Schedule(TaskScheduler scheduler, IFuture future)
        {
            _Future = scheduler.Start(_Task, TaskExecutionPolicy.RunAsBackgroundTask);

            _Future.RegisterOnComplete((f) => {
                object r;
                Exception e;
                f.GetResult(out r, out e);
                future.Complete(r);
            });
            _Future.RegisterOnDispose((f) => {
                future.Dispose();
            });
        }
示例#17
0
        public void Dispose()
        {
            if (Watcher != null)
            {
                Watcher.Stop();
                Watcher.Dispose();
                Watcher = null;
            }

            if (TimerTask != null)
            {
                TimerTask.Dispose();
                TimerTask = null;
            }
        }
示例#18
0
        public void RefreshValues()
        {
            if (_CurrentRefresh != null)
            {
                _CurrentRefresh.Dispose();
            }

            var pi = ProcessList.SelectedItem as ProcessInfo;

            if (pi != null)
            {
                _CurrentRefresh = Start(RefreshValuesTask(pi, Context, ActiveContext));
            }
            else
            {
                _CurrentRefresh = null;
            }
        }
        public void Dispose()
        {
            foreach (var tc in _Clients)
            {
                tc.Dispose();
            }

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

            if (_Listener != null)
            {
                _Listener.Stop();
                _Listener = null;
            }
        }
        public void Dispose()
        {
            _WakePrevious = null;

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

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

            if (_Future != null)
            {
                _Future.Dispose();
                _Future = null;
            }
        }
示例#21
0
        private void Timeline_RangeChanged(object sender, EventArgs e)
        {
            var pair = Timeline.Selection;

            if (pair.CompareTo(PendingLoadPair) != 0)
            {
                if (PendingLoad != null)
                {
                    PendingLoad.Dispose();
                    PendingLoad     = null;
                    PendingLoadPair = Pair.New(-1, -1);
                }
            }
            else
            {
                return;
            }

            if (pair.CompareTo(CurrentPair) != 0)
            {
                PendingLoad = Start(LoadRange(pair));
            }
        }