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

◆ SpinUntil() [2/3]

static bool System.Threading.SpinWait.SpinUntil ( Func< bool > condition,
int millisecondsTimeout )
inlinestatic

Definition at line 104 of file SpinWait.cs.

105 {
106 if (millisecondsTimeout < -1)
107 {
108 throw new ArgumentOutOfRangeException("millisecondsTimeout", millisecondsTimeout, SR.SpinWait_SpinUntil_TimeoutWrong);
109 }
110 if (condition == null)
111 {
112 throw new ArgumentNullException("condition", SR.SpinWait_SpinUntil_ArgumentNull);
113 }
114 uint num = 0u;
116 {
117 num = TimeoutHelper.GetTime();
118 }
119 SpinWait spinWait = default(SpinWait);
120 while (!condition())
121 {
122 if (millisecondsTimeout == 0)
123 {
124 return false;
125 }
126 spinWait.SpinOnce();
127 if (millisecondsTimeout != -1 && spinWait.NextSpinWillYield && millisecondsTimeout <= TimeoutHelper.GetTime() - num)
128 {
129 return false;
130 }
131 }
132 return true;
133 }

References System.Threading.TimeoutHelper.GetTime(), System.millisecondsTimeout, System.Threading.SpinWait.NextSpinWillYield, System.Threading.SpinWait.SpinOnce(), System.SR.SpinWait_SpinUntil_ArgumentNull, and System.SR.SpinWait_SpinUntil_TimeoutWrong.