Returns true if a unit of work was processed within the timeout, or false if the timeout expired prior to a unit of work completion. itemProcessed will be set to the instance of the item process when the result is true.
            
            
            
Syntax
            Parameters
- timeout
 
- itemProcessed
 
            
             
            
						
            
            
            
            
Example
Library/Library.Test/TestWaitAndContinue.cs
             | C# |  Copy Code | 
|---|
WaitAndContinueList work = new WaitAndContinueList();
SampleWork item1, item2;
IWaitAndContinue signaled;
work.AddWork(item1 = new SampleWork());
work.AddWork(item2 = new SampleWork());
Assert.AreEqual(2, work.Count);
Assert.IsFalse(work.IsEmpty);
//normally done as a loop: while(work.Perform(timeout)) { }
Assert.IsFalse(work.PerformWork(1));
item2.Ready.Set();
Assert.IsTrue(work.PerformWork(0));
Assert.IsTrue(item2.Completed);
Assert.IsTrue(item2.Disposed);
Assert.IsFalse(work.PerformWork(1));
item1.Cancel.Set();
Assert.IsTrue(work.PerformWork(0, out signaled));
Assert.IsTrue(ReferenceEquals(signaled, item1));
Assert.IsTrue(item1.Completed);
Assert.IsTrue(item1.Cancelled);
Assert.IsTrue(item1.Disposed);
Assert.IsTrue(work.IsEmpty);
Assert.AreEqual(0, work.Count);
Assert.IsFalse(work.PerformWork(1)); | 
 
| VB.NET |  Copy Code | 
|---|
Dim work As New WaitAndContinueList()
Dim item1 As SampleWork, item2 As SampleWork
Dim signaled As IWaitAndContinue
work.AddWork(item1 = New SampleWork())
work.AddWork(item2 = New SampleWork())
Assert.AreEqual(2, work.Count)
Assert.IsFalse(work.IsEmpty)
'normally done as a loop: while(work.Perform(timeout)) { }
Assert.IsFalse(work.PerformWork(1))
item2.Ready.[Set]()
Assert.IsTrue(work.PerformWork(0))
Assert.IsTrue(item2.Completed)
Assert.IsTrue(item2.Disposed)
Assert.IsFalse(work.PerformWork(1))
item1.Cancel.[Set]()
Assert.IsTrue(work.PerformWork(0, signaled))
Assert.IsTrue(ReferenceEquals(signaled, item1))
Assert.IsTrue(item1.Completed)
Assert.IsTrue(item1.Cancelled)
Assert.IsTrue(item1.Disposed)
Assert.IsTrue(work.IsEmpty)
Assert.AreEqual(0, work.Count)
Assert.IsFalse(work.PerformWork(1)) | 
 
 
            
            
Requirements
Target Platforms: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7
 
            
            
See Also