public Task Signal(TResult value = default(TResult)) { Trace2($"Signal {value} (enqueue)"); // Ensure continuations are run asynchronously return(_tcs.TrySetResultAsync(value)); }