public static void CancellationToken_GetHashCode() { CancellationTokenSource cts = new CancellationTokenSource(); CancellationToken ct = cts.Token; int hash1 = cts.GetHashCode(); int hash2 = cts.Token.GetHashCode(); int hash3 = ct.GetHashCode(); Assert.Equal(hash1, hash2); Assert.Equal(hash2, hash3); CancellationToken defaultUnsetToken1 = new CancellationToken(); CancellationToken defaultUnsetToken2 = new CancellationToken(); int hashDefaultUnset1 = defaultUnsetToken1.GetHashCode(); int hashDefaultUnset2 = defaultUnsetToken2.GetHashCode(); Assert.Equal(hashDefaultUnset1, hashDefaultUnset2); CancellationToken defaultSetToken1 = new CancellationToken(true); CancellationToken defaultSetToken2 = new CancellationToken(true); int hashDefaultSet1 = defaultSetToken1.GetHashCode(); int hashDefaultSet2 = defaultSetToken2.GetHashCode(); Assert.Equal(hashDefaultSet1, hashDefaultSet2); Assert.NotEqual(hash1, hashDefaultUnset1); Assert.NotEqual(hash1, hashDefaultSet1); Assert.NotEqual(hashDefaultUnset1, hashDefaultSet1); }
/// <summary> /// Serves as a hash function for a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>. /// </summary> /// <returns>A hash code for the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance.</returns> public override Int32 GetHashCode() { if (m_source == null) { // link to the common source so that we have a source to interrogate. return(CancellationTokenSource.InternalGetStaticSource(false).GetHashCode()); } return(m_source.GetHashCode()); }
public Task<ProcessResults> RunAsync(ProcessStartInfo processStartInfo, CancellationTokenSource cancellationToken) { processStartInfo.UseShellExecute = false; processStartInfo.RedirectStandardOutput = true; processStartInfo.RedirectStandardError = true; var tcs = new TaskCompletionSource<ProcessResults>(); var standardOutput = new List<string>(); var standardError = new List<string>(); var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true }; process.OutputDataReceived += (sender, args) => { if (args.Data != null) { standardOutput.Add(args.Data); } }; process.ErrorDataReceived += (sender, args) => { if (args.Data != null) { standardError.Add(args.Data); } }; cancellationToken.Token.ThrowIfCancellationRequested(); _log.Debug("Registering cancellation for " + cancellationToken.GetHashCode()); cancellationToken.Token.Register(() => { tcs.TrySetCanceled(); KillProcessAndChildren(process.Id); }); process.Exited += (sender, args) => { tcs.TrySetResult(new ProcessResults(process, standardOutput, standardError)); }; if (process.Start() == false) { tcs.TrySetException(new InvalidOperationException("Failed to start process")); } process.BeginOutputReadLine(); process.BeginErrorReadLine(); return tcs.Task; }
public override int GetHashCode() { return(id.GetHashCode() ^ (source == null ? 0 : source.GetHashCode())); }
public override int GetHashCode() => source?.GetHashCode() ?? 0;
/// <summary> /// Serves as a hash function for a System.Threading.CancellationTokenRegistration. /// </summary> /// <returns>A hash code for the current System.Threading.CancellationTokenRegistration instance.</returns> public override int GetHashCode() { return(source.GetHashCode()); }
public override int GetHashCode () { return id.GetHashCode () ^ source.GetHashCode (); }
private Int32 QueueTask(Func<Action<IWindow>, Int32, CancellationTokenSource, Task> taskCreator, Action<IWindow> callback, Int32 timeout) { var cts = new CancellationTokenSource(); taskCreator.Invoke(callback, timeout, cts); _document.AttachReference(cts); return cts.GetHashCode(); }
private static bool CancellationToken_GetHashCode() { TestHarness.TestLog("* CancellationTokenTests.CancellationToken_GetHashCode()"); bool passed = true; CancellationTokenSource cts = new CancellationTokenSource(); CancellationToken ct = cts.Token; int hash1 = cts.GetHashCode(); int hash2 = cts.Token.GetHashCode(); int hash3 = ct.GetHashCode(); passed &= TestHarnessAssert.AreEqual(hash1, hash2, "[1]Hashes should be equal."); passed &= TestHarnessAssert.AreEqual(hash2, hash3, "[2]Hashes should be equal."); CancellationToken defaultUnsetToken1 = new CancellationToken(); CancellationToken defaultUnsetToken2 = new CancellationToken(); int hashDefaultUnset1 = defaultUnsetToken1.GetHashCode(); int hashDefaultUnset2 = defaultUnsetToken2.GetHashCode(); passed &= TestHarnessAssert.AreEqual(hashDefaultUnset1, hashDefaultUnset2, "[3]Hashes should be equal."); CancellationToken defaultSetToken1 = new CancellationToken(true); CancellationToken defaultSetToken2 = new CancellationToken(true); int hashDefaultSet1 = defaultSetToken1.GetHashCode(); int hashDefaultSet2 = defaultSetToken2.GetHashCode(); passed &= TestHarnessAssert.AreEqual(hashDefaultSet1, hashDefaultSet2, "[4]Hashes should be equal."); passed &= TestHarnessAssert.AreNotEqual(hash1, hashDefaultUnset1, "[5]Hashes should be different."); passed &= TestHarnessAssert.AreNotEqual(hash1, hashDefaultSet1, "[6]Hashes should be different."); passed &= TestHarnessAssert.AreNotEqual(hashDefaultUnset1, hashDefaultSet1, "[7]Hashes should be different."); return passed; }