我正在寻找取代通过Xamarin的ASPL核心,.NET 4.5.2和Android + iOS的PCL中的SpinWait方法,但找不到直接的等效。目前我正在寻找与Spinwait在便携式类库中的一些自旋
SpinWait spinWait = new SpinWait();
SpinWait.SpinUntil(() => spinWait.Count >= 10);
更换
System.Threading.Thread.SpinWait(10);
,但我不知道如果我这样做打开一罐蠕虫。或者如果可能的话
for(int i=0; i<10; i++) SpinOnce();
更好。我避免了这种情况,因为SpinOnce()在每次旋转后都会产生效果,因此看起来可能效率较低。
语境:
我目前移植这种高精度计时器到PCL(ASPNET核心,.NET 4.5.2和Android + iOS的通过Xamarin)和来面对的问题与SpinWait方法去除。 http://www.codeproject.com/Articles/98346/Microsecond-and-Millisecond-NET-Timer
在适当的.NET Framework中有一个方法SpinWait(),它接受该决定多少旋转等待 (https://msdn.microsoft.com/en-us/library/system.threading.thread.spinwait(v=vs.110).aspx)一个int,但针对这个当System.Threading.Thread命名空间不可用框架的组合,但包括一个SpinWait结构(https://msdn.microsoft.com/en-us/library/system.threading.spinwait(v=vs.110).aspx),它允许我访问SpinOnce()和一个接受布尔返回函数的SpinUntil()方法。