public void GetImageBlocking() { var imageGetter = new FullSizeImageGetter(); var result = imageGetter.BeginGetImage(null, _file.FullName); var actualImage = imageGetter.EndGetImage(result); AssertImagesAreEquivalent(_originalImage, actualImage); Assert.IsFalse(result.CompletedSynchronously); }
public void GetImageRunCallback() { var imageGetter = new FullSizeImageGetter(); var callbackCompleted = false; var done = new ManualResetEventSlim(false); var result = imageGetter.BeginGetImage(ar => { Assert.IsNotNull(ar); Assert.IsTrue(ar.IsCompleted); var actualImage = imageGetter.EndGetImage(ar); AssertImagesAreEquivalent(_originalImage, actualImage); callbackCompleted = true; done.Set(); }, _file.FullName); Assert.IsFalse(callbackCompleted); //result.AsyncWaitHandle.WaitOne(); //doesn't wait for callback complete, just callback init Assert.IsTrue(done.Wait(60000)); Assert.IsFalse(result.CompletedSynchronously); Assert.IsTrue(callbackCompleted); }