Экран мерцает, потому что форма сначала перерисовывает фон, а затем позволяет рисовать на нем.
Вы можете приостановить это поведение, переопределив WndProc
:
private const int WM_ERASEBKGND = 20;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_ERASEBKGND)
{
m.Result = IntPtr.Zero;
}
else
{
base.WndProc(ref m);
}
}
Это сразу возвратится:
Если тайм-аут больше, чем нуль, он указывает максимальный интервал (в миллисекундах) для ожидания любого дескриптора файла для становления готовым. Если тайм-аут является нулем, то
poll()
возвратится без блокирования. Если значение тайм-аута-1
,poll
блоки неограниченно долго.
, с Mac OS X 10.5
;
Максимальный интервал для ожидания опроса для завершения, в миллисекундах. Если это значение 0,
poll()
сразу возвратится. Если это значениеINFTIM (-1)
,poll()
заблокируется неограниченно долго, пока условие не найдено.
, с OpenBSD 3.8
Поскольку я вижу, что это, ожидая тайм-аута означает "иметь" тайм-аут. Таким образом, я ожидал бы, что опрос () на самом деле проверяет дескрипторы файлов и затем ожидает, если никто не готов к тайм-ауту 0 миллисекунд (никакие не ожидают вообще). Но случай - то, что это будет просто сигнализировать, доступен ли fd.
Я также проверил исходный код Linux и к моему знанию, это - способ, которым это работает: сначала вычисляет "будущую" точку ожидания, затем проверяет дескрипторы файлов, затем если ни одно доступное, ожидает в течение требуемого времени тайм-аута.
С уважением,
Из страниц справочника Ubuntu:
Аргумент тайм-аута указывает верхний предел времени, в течение которого опрос () заблокируется в миллисекундах. Определение отрицательной величины в тайм-ауте означает бесконечный тайм-аут.
Поскольку нет никакого особого случая для 0, я предположил бы, что опрос () заблокируется для 0 миллисекунд.