Я ищу, чтобы заменить метод SpinWait в PCL, нацеленном на ASPNET Core, .NET 4.5.2 и Android + iOS через Xamarin, но не может найти прямой эквивалент. На данный момент я смотрю на заменуSpinwait для ряда спинов в библиотеке портативных классов
System.Threading.Thread.SpinWait(10);
с
SpinWait spinWait = new SpinWait();
SpinWait.SpinUntil(() => spinWait.Count >= 10);
, но я понятия не имею, если я открываю банку с червями, делая. или, если возможно,
for(int i=0; i<10; i++) SpinOnce();
лучше. Я избегал этого, потому что SpinOnce() дает после каждого вращения, поэтому кажется, что он менее эффективен.
Контекст:
Я в настоящее время портирования этот высокоточный таймер для PCL (САШ Core, .NET 4.5.2 и Android + прошивкой через Xamarin) и наталкивается вопрос с Удаление метода SpinWait. http://www.codeproject.com/Articles/98346/Microsecond-and-Millisecond-NET-Timer
В .NET Framework правильного существует метод SpinWait(), который принимает Int, которая диктует, сколько спины ждать (https://msdn.microsoft.com/en-us/library/system.threading.thread.spinwait(v=vs.110).aspx), но пространство имен System.Threading.Thread не доступны при ориентации этого комбинация фреймворков, но включает в себя структуру SpinWait (https://msdn.microsoft.com/en-us/library/system.threading.spinwait(v=vs.110).aspx), которая дает мне доступ к SpinOnce() и методу SpinUntil(), который принимает функцию логического возврата.