По таймеру делаю проверку на появление новых записей в бд и с появлением новой записи необходимо открыть окно с деталями этой записи. если делаю по таймеру, то Окна открываются но неотрисованные до конца болтаются на экране и доступа к ним нет. окно как бы на .Show() висит... Если делаю не по таймеру а кликом на кнопке, то все открылись отрисовались и всё ок.
async void showwins()
{
while (1==1)
{
for (int i = 0; i <= 5; i++)
{
SmallWin f = new SmallWin($"{i}:{DateTime.Now.ToLongTimeString()}");
var d = await Task.Run(()=>showsinglewin(i,f));
}
}
}
int showsinglewin(int i, SmallWin w)
{
w.Show();
return 1;
}
Вы можете использовать обычный таймер, но тогда вам надо будет позаботиться о запуске окна в нужном потоке. Или вы можете использовать DispatcherTimer, но тогда весь метод будет запущен в UI потоке (то есть нельзя в таком методе использовать бесконечные циклы, повесите всё приложение).
Пример:
public class MainForm:Form
{
System.Threading.Timer _timer;
DispatcherTimer _dTimer;
public MainForm()
{
_timer = new System.Threading.Timer(TimerCallback, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(10));
_dTimer = new DispatcherTimer();
_dTimer.Interval = TimeSpan.FromSeconds(13);
_dTimer.Tick+= DispatcherTimerCallback;
_dTimer.Start();
this.FormClosing+= FormClosingCallback;
}
private void FormClosingCallback(object sender, EventArgs e)
{
_dTimer.Stop();
_timer.Dispose();
}
private void TimerCallback(object state)
{
this.Invoke(new Action(() =>
{
var form = new Form() {Text = "TimerCallback form"};
form.Show();
}));
}
private void DispatcherTimerCallback(object sender, EventArgs e)
{
var form = new Form() { Text = "DispatcherTimerCallback form" };
form.Show();
}
}
Как использовать
new MainForm().ShowDialog();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
При ознакомлении с данным вопросом встретил такое определение: Ключевое слово async
Имею большой текстовый файл(~50000 строк)Через streamreader читаю его, в файле имеются пустые строки
При обновлении страницы (по нажатию определенной кнопки) сиссия каждый раз обновляется, то есть старое значение, сохраненное в ней, я не могу...