2011-01-25 2 views
2

Мне нужно сделать WinForm моей вспышки, чтобы предупредить пользователя, и я хочу сделать это, изменив цвет фона по умолчанию на красный, и обратно каждую секунду для 5 секунд. В течение этих 5 секунд я хочу использовать форму, которая заставляет меня думать, что я должен поместить мигающий код в другой поток, НО, я думаю, что у меня будут проблемы, потому что мигающий код попытается изменить форму, который был создан в другом потоке.Выполнение WinForm Изменение цвета фона при использовании по-прежнему

Каков наилучший способ для достижения моей цели создания мигающего WinForm?

Спасибо!

ответ

4

Вам необходимо использовать System.Windows.Forms.Timer.

+0

Какая разница между System.Windows.Forms.Timer и System.Timers.Timer? – sooprise

+0

@Soo: таймер WinForms использует цикл сообщений для запуска потока пользовательского интерфейса. Timers.Timer использует пул потоков. – SLaks

1

Как насчет использования таймера и изменения цвета фона формы в обработчике событий?

1

Если вы хотите изменить WinForm из другого потока, вы можете использовать метод .Invoke() формы. Этот метод позволяет другому потоку вызывать выполнение метода в потоке формы.

Se документация примеров: MSDN: Control.Invoke