private void SearchNextNode () { if (_searchState == null) return; SearchWorker worker = new SearchWorker (_searchState); Thread t = new Thread (new ThreadStart (worker.Run)); t.IsBackground = true; t.Start (); _searchForm = new CancelFindWindowController (); if (RunWindow (_searchForm) == ModalResult.Cancel) { worker.Cancel(); _searchState = null; } t.Join(); }
private void SearchNode (TreeDataNode node) { if (node == null) return; if (!node.Data.CanSearchNode) return; FindWindowController form = new FindWindowController(); if (RunWindow (form) != ModalResult.OK) return; _searchState = new SearchStateMac(this) { RootNode = node.Data, SearchName = form.NameToken, SearchValue = form.ValueToken, DiscoverCallback = SearchDiscoveryCallback, CollapseCallback = SearchCollapseCallback, EndCallback = SearchEndCallback, }; SearchNextNode(); }