Я новичок в С#, и я делаю проект, которому нужны два таймера для одновременного доступа к одной и той же переменной (один для чтения, а другой для записи или обновления). Итак, моя проблема заключается в том, какой таймер должен Я использую? Forms.Timer или Thread.Timer. Я читал какую-то статью об их различии. Поскольку я хочу использовать эти таймеры для обновления интерфейса программы (изображение в поле изображения), поэтому я думаю, что здесь следует использовать Forms.Timer, поскольку он связан с графическим интерфейсом. Однако порядок, в котором таймер выполняется первым, также имеет значение, поэтому я думаю, что Thread.Timer также следует учитывать. Можно ли как-то объединить их вместе?
Обновление: я делаю проект ЭКГ, поэтому в основном я продолжаю получать данные и хочу нарисовать их в форме. однако, поскольку рисование заняло около 40 мс, поэтому использование одного таймера будет иметь задержку, а мне нужно реальное время. (Например, если я установил интервал в 100 мс, то потребовалось 140 мс, чтобы закончить рисование одного кадра, который должен быть завершен в 100 мс. Это приведет к задержке 40 мс для каждого тика.) Поэтому мое решение использует один таймер для обновления буфера данных, когда я получаю данные, и использую другой таймер для вызова Invalidate, который перерисовывает все новые данные. Должен ли я использовать thread.timer для обновления данных и form.timer для перерисовки формы?
Invalidate()
элемент управления, используемый в качестве холста для рисования новых данных. - person Jimi   schedule 14.12.2019