Delay във WindowsForms application
Здравейте!
Това което се опитвам да направя е да променя цвета на определен TextBox и след, примерно, половин секунда да го сменя отново. (като сигнал че потребителят е направил някаква грешка примерно.)
Има ли някакъв "бърз" начин за подобно забавяне/отлагане/... , в рамките на няколко реда, или трябва да го изграждам сам?
От StackOverflow за сега попадам или на Thread.Sleep() , което ... явно няма как да ми свърши работа, или на решения които са с дължината на половината ми изписан до момента код.
Благодаря предварително!
Не съм много сигурен как ще ми помогне за конкретният ми случай, но май ще ми е от полза. Благодаря ти. На мен ми трябва просто кратка пауза от порядъка на половин секунда между две операции а не едновременно извършване.
Пробвах със следното по-рано днес:
long time = DateTime.Now.Ticks;
this.textBox1.BackColor = Color.Bisque;
while (DateTime.Now.Ticks < time + 5000000) { }
this.textBox1.BackColor = Color.White;
но колкото и тика да сложа, резултат от вторият ред не се вижда. Не би ли трябвало той да се изпълни и визуализира и чат тогава да започне цикъла?
Ако направя таск от ред2 и сложа await точно след него дали ще има разлика? Или мисленето ми в случая е грешно.
Сложи Application.DoEvents(); веднага след първата смяна на цвета.
А закъснение можеш да сложиш и с Thread.Sleep(1000); , но добави using System.Threading;