diff --git a/src/Microsoft.VisualStudio.Threading/AsyncQueue`1.cs b/src/Microsoft.VisualStudio.Threading/AsyncQueue`1.cs
index 6a7a1b5ed..324aa3268 100644
--- a/src/Microsoft.VisualStudio.Threading/AsyncQueue`1.cs
+++ b/src/Microsoft.VisualStudio.Threading/AsyncQueue`1.cs
@@ -82,7 +82,7 @@ public int Count
}
///
- /// Gets a value indicating whether the queue has completed.
+ /// Gets a value indicating whether the queue is both empty and had invoked.
///
///
/// This is arguably redundant with .IsCompleted, but this property
@@ -101,7 +101,7 @@ public bool IsCompleted
}
///
- /// Gets a task that transitions to a completed state when is called.
+ /// Gets a task that transitions to a completed state when is called and the queue is empty.
///
public Task Completion
{
@@ -142,6 +142,11 @@ public Task Completion
///
/// Signals that no further elements will be enqueued.
///
+ ///
+ /// This method will return immediately.
+ /// Elements enqueued before calling this method may still be dequeued.
+ /// will return true only after this method has been called and the queue is empty.
+ ///
public void Complete()
{
lock (this.SyncRoot)