private void LoadMultiBranchViewData(string remote, IList <GitRef> localHeads) { _remoteBranchesLoader.Cancel(); Cursor = Cursors.AppStarting; _remoteBranchesLoader.Load(() => Module.GetRemoteRefs(remote, false, true), (remoteHeads) => ProcessHeads(remote, localHeads, remoteHeads)); }
public void Cancel_during_load_means_callback_not_fired() { ThreadHelper.JoinableTaskFactory.Run(async() => { var loadSignal = new SemaphoreSlim(0); var completeSignal = new SemaphoreSlim(0); var started = 0; var completed = 0; var task = _loader.LoadAsync( () => { started++; loadSignal.Release(); completeSignal.Wait(); }, () => completed++); Assert.True(await loadSignal.WaitAsync(1000)); Assert.AreEqual(1, started); Assert.AreEqual(0, completed); _loader.Cancel(); completeSignal.Release(); await task; Assert.AreEqual(1, started); Assert.AreEqual(0, completed, "Should not have called the follow-up action"); Assert.AreEqual(TaskStatus.RanToCompletion, task.Status); }); }
private void CancelBranchNameLoad() { if (_branchNameLoader != null) { _branchNameLoader.Cancel(); } }
void IDisposable.Dispose() { if (backgroundLoader != null) { backgroundLoader.Cancel(); } backgroundLoader = null; }
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing) { _branchesLoader.Cancel(); _branchesLoader.Dispose(); components?.Dispose(); } base.Dispose(disposing); }
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing) { _branchListLoader.Cancel(); _branchListLoader.Dispose(); if (components != null) components.Dispose(); } base.Dispose(disposing); }
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing) { _asyncLoader.Cancel(); _asyncLoader.Dispose(); _filterRevisionsHelper.Dispose(); _filterBranchHelper.Dispose(); _formBrowseMenus.Dispose(); components?.Dispose(); } base.Dispose(disposing); }
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing) { loader.Cancel(); loader.Dispose(); if (components != null) { components.Dispose(); } } base.Dispose(disposing); }
private void FilePattern_TextChanged(object sender, EventArgs e) { _ignoredFilesLoader.Cancel(); if (_NO_TRANSLATE_Preview.Enabled) { _ignoredFilesLoader.Delay = 300; _NO_TRANSLATE_filesWillBeIgnored.Text = _updateStatusString.Text; _NO_TRANSLATE_Preview.DataSource = new List <string> { _updateStatusString.Text }; _NO_TRANSLATE_Preview.Enabled = false; } _ignoredFilesLoader.Load(() => Module.GetIgnoredFiles(GetCurrentPatterns()), UpdatePreviewPanel); }
public void Using_load_or_cancel_after_dispose_throws() { var loader = new AsyncLoader(); // Safe to dispose multiple times loader.Dispose(); loader.Dispose(); loader.Dispose(); // Any use after dispose should throw Assert.ThrowsAsync <ObjectDisposedException>(async() => await loader.LoadAsync(() => { }, () => { })); Assert.ThrowsAsync <ObjectDisposedException>(async() => await loader.LoadAsync(() => 1, i => { })); Assert.ThrowsAsync <ObjectDisposedException>(async() => await loader.LoadAsync(_ => { }, () => { })); Assert.ThrowsAsync <ObjectDisposedException>(async() => await loader.LoadAsync(_ => 1, i => { })); Assert.Throws <ObjectDisposedException>(() => loader.Cancel()); }
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing) { _asyncLoader.Cancel(); _asyncLoader.Dispose(); _filterRevisionsHelper.Dispose(); _filterBranchHelper.Dispose(); if (components != null) { components.Dispose(); } } base.Dispose(disposing); }
private void CancelBranchNameLoad() { _branchNameLoader?.Cancel(); }
private void FormGitStatistics_FormClosing(object sender, FormClosingEventArgs e) { lineCounter.LinesOfCodeUpdated -= lineCounter_LinesOfCodeUpdated; loadThread.Cancel(); }
private void LoadMultiBranchViewData(string remote, IList <GitRef> localHeads) { _remoteBranchesLoader.Cancel(); Cursor = Cursors.AppStarting; _remoteBranchesLoader.Load(() => { return(Module.GetRemoteRefs(remote, false, true)); }, (remoteHeads) => { Cursor = Cursors.Default; if (remoteHeads.HostKeyFail) { string remoteUrl; remoteUrl = Module.GetPathSetting(string.Format(SettingKeyString.RemoteUrl, remote)); if (string.IsNullOrEmpty(remoteUrl)) { remoteUrl = remote; } if (FormRemoteProcess.AskForCacheHostkey(this, Module, remoteUrl)) { LoadMultiBranchViewData(remote, localHeads); } } else if (remoteHeads.AuthenticationFail) { string loadedKey; if (FormPuttyError.AskForKey(this, out loadedKey)) { LoadMultiBranchViewData(remote, localHeads); } } else { // Add all the local branches. foreach (var head in localHeads) { DataRow row = _branchTable.NewRow(); row["Force"] = false; row["Delete"] = false; row["Local"] = head.Name; string remoteName; if (head.Remote == remote) { remoteName = head.MergeWith ?? head.Name; } else { remoteName = head.Name; } row["Remote"] = remoteName; bool newAtRemote = remoteHeads.Result.Any(h => h.Name == remoteName); row["New"] = newAtRemote ? _no.Text : _yes.Text; row["Push"] = newAtRemote; _branchTable.Rows.Add(row); } // Offer to delete all the left over remote branches. foreach (var remoteHead in remoteHeads.Result) { GitRef head = remoteHead; if (localHeads.All(h => h.Name != head.Name)) { DataRow row = _branchTable.NewRow(); row["Local"] = null; row["Remote"] = remoteHead.Name; row["New"] = _no.Text; row["Push"] = false; row["Force"] = false; row["Delete"] = false; _branchTable.Rows.Add(row); } } } }); }
public void Dispose() { backgroundLoader.Cancel(); }
private void SearchWindow_FormClosing(object sender, FormClosingEventArgs e) { _backgroundLoader.Cancel(); }