Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ WaitForNextTickAsync()

ValueTask< bool > System.Threading.PeriodicTimer.State.WaitForNextTickAsync ( PeriodicTimer owner,
CancellationToken cancellationToken )
inline

Definition at line 23 of file PeriodicTimer.cs.

24 {
25 lock (this)
26 {
27 if (_activeWait)
28 {
29 ThrowHelper.ThrowInvalidOperationException();
30 }
31 if (cancellationToken.IsCancellationRequested)
32 {
34 }
35 if (_signaled)
36 {
37 if (!_stopped)
38 {
39 _signaled = false;
40 }
41 return new ValueTask<bool>(!_stopped);
42 }
43 _owner = owner;
44 _activeWait = true;
45 _ctr = cancellationToken.UnsafeRegister(delegate(object state, CancellationToken cancellationToken)
46 {
47 ((State)state).Signal(stopping: false, cancellationToken);
48 }, this);
49 return new ValueTask<bool>(this, _mrvtsc.Version);
50 }
51 }
CancellationTokenRegistration _ctr
ManualResetValueTaskSourceCore< bool > _mrvtsc
static ValueTask FromCanceled(CancellationToken cancellationToken)
Definition ValueTask.cs:180

References System.Threading.PeriodicTimer.State._activeWait, System.Threading.PeriodicTimer.State._ctr, System.Threading.PeriodicTimer.State._mrvtsc, System.Threading.PeriodicTimer.State._owner, System.Threading.PeriodicTimer.State._signaled, System.Threading.PeriodicTimer.State._stopped, System.cancellationToken, System.Threading.Tasks.ValueTask< TResult >.FromCanceled(), System.state, System.ThrowHelper.ThrowInvalidOperationException(), and System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore< TResult >.Version.

Referenced by System.Threading.PeriodicTimer.WaitForNextTickAsync().