SpinWait.SpinOnce vs Thread.Sleep
От: Аноним  
Дата: 09.07.13 13:18
Оценка: :)
В процессе рефакторинга кода возник вопрос.
Существует примерно такой код
do
{
res = FindWindow(...);

if(res == IntPtr.Zero)
Thread.Sleep(500);

}
while (res == IntPtr.Zero);



Активное ожидание это плохо, но в этом случае насколько я знаю неизбежно.

Возник вопрос.
Будет ли лучше использовать вот такой код:


SpinWait spinWait = new SpinWait();
do
{
res = FindWindow(...);

if(res == IntPtr.Zero)
SpinWait.SpinOnce();
}
while (res == IntPtr.Zero);


Во втором варианте я вижу более быстрое время отклика.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.