Dreamine.PLC.Core
1.0.1
Dreamine.PLC.Core 산업 자동화 및 I/O 기능을 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
AsyncLock.cs
이 파일의 문서화 페이지로 가기
1
namespace
Dreamine.PLC.Core.Internal
;
2
11
public
sealed
class
AsyncLock
12
{
21
private
readonly SemaphoreSlim
_semaphore
=
new
(1, 1);
22
55
public
async Task<IDisposable>
LockAsync
(CancellationToken cancellationToken =
default
)
56
{
57
await
_semaphore
.WaitAsync(cancellationToken).ConfigureAwait(
false
);
58
return
new
Releaser
(
_semaphore
);
59
}
60
69
private
sealed
class
Releaser
: IDisposable
70
{
79
private
readonly SemaphoreSlim
_semaphore
;
88
private
bool
_disposed
;
89
106
public
Releaser
(SemaphoreSlim semaphore)
107
{
108
_semaphore
= semaphore;
109
}
110
119
public
void
Dispose
()
120
{
121
if
(
_disposed
)
122
{
123
return
;
124
}
125
126
_disposed
=
true
;
127
_semaphore
.Release();
128
}
129
}
130
}
Dreamine.PLC.Core.Internal
Definition
AsyncLock.cs:1
Dreamine.PLC.Core.Internal.AsyncLock
Definition
AsyncLock.cs:12
Dreamine.PLC.Core.Internal.AsyncLock.LockAsync
async Task< IDisposable > LockAsync(CancellationToken cancellationToken=default)
Definition
AsyncLock.cs:55
Dreamine.PLC.Core.Internal.AsyncLock._semaphore
readonly SemaphoreSlim _semaphore
Definition
AsyncLock.cs:21
Dreamine.PLC.Core.Internal.AsyncLock.Releaser
Definition
AsyncLock.cs:70
Dreamine.PLC.Core.Internal.AsyncLock.Releaser.Releaser
Releaser(SemaphoreSlim semaphore)
Definition
AsyncLock.cs:106
Dreamine.PLC.Core.Internal.AsyncLock.Releaser.Dispose
void Dispose()
Definition
AsyncLock.cs:119
Dreamine.PLC.Core.Internal.AsyncLock.Releaser._disposed
bool _disposed
Definition
AsyncLock.cs:88
Dreamine.PLC.Core.Internal.AsyncLock.Releaser._semaphore
readonly SemaphoreSlim _semaphore
Definition
AsyncLock.cs:79
Internal
AsyncLock.cs
다음에 의해 생성됨 :
1.17.0