コード例 #1
0
ファイル: AsyncLockTests.cs プロジェクト: CLOUDeffff/Akavache
        public void HandlesCancellation()
        {
            var asyncLock = new AsyncLock();
            var lockOne = asyncLock.LockAsync();

            var cts = new CancellationTokenSource();
            var lockTwo = asyncLock.LockAsync(cts.Token);

            Assert.True(lockOne.IsCompleted);
            Assert.Equal(TaskStatus.RanToCompletion, lockOne.Status);
            Assert.NotNull(lockOne.Result);

            Assert.False(lockTwo.IsCompleted);

            cts.Cancel();

            Assert.True(lockTwo.IsCompleted);
            Assert.True(lockTwo.IsCanceled);

            lockOne.Result.Dispose();
        }
コード例 #2
0
ファイル: AsyncLock.cs プロジェクト: CLOUDeffff/Akavache
 internal Releaser(AsyncLock toRelease) { m_toRelease = toRelease; }
コード例 #3
0
ファイル: AsyncLock.cs プロジェクト: sven-brobonds/Akavache
 internal Releaser(AsyncLock toRelease)
 {
     _toRelease = toRelease;
 }