У меня есть winform с формой под названием MainForm.У меня есть статический класс под названием ObjMgr.В ObjMg у меня есть несколько других статических классов, значений, но сейчас это не важно.
В классе ObjMgr у меня также есть метод static void Pulse (), который я заполняю своими другими статическими классами в ObjMgr,Этот импульсный метод приходится запускать очень часто, например, 0,033 с.
В MainForm я поместил кнопку запуска, которая при событии щелчка начинает пульсировать мой ObjMgr в другом потоке.
Pulser = new System.Threading.Thread(new System.Threading.ThreadStart(ObjMgr.StartPulsing));
Pulser.IsBackground = true;
Pulser.Start();
Мой метод ObjMgr.StartPulsing источник:
while(true)
{
ObjMgr.Pulse();
System.Threading.Thread.Sleep(30);
}
Мой метод Pulser источник:
//here I update all my data in ObjMgr
// Its need to be fast, I have some while, and switch statements here.
// complicated code here :D The main thing is, its populating my classes with data.
Теперь у меня запущен пульсатор, и я постоянно обновляю данные своего статического класса.Это очень приятно.Следующим шагом я хотел бы показать некоторые данные в моей форме (UI) из обновленных классов ObjMgr.В моей форме около 20 ярлыков, 2 значения ProgressBar, которые я хочу часто обновлять, например, Pulsator.(0,033сек)
Было бы очевидно обновить мои метки, начиная с самого метода Pulsator, но я боюсь, что это замедлит мой Pulsator, и я не хочу этого .Итак, Мне нужно несколько советов, как это сделать .Я думал, и я установил таймер, что я установил интервал в 30, а затем при тиковом событии я прочитал свои данные из ObjMgr и показал изменение меток.Это работает хорошо, но немного глючит, потому что некоторые проблемы с синхронизацией. Если вы понимаете мою проблему, не могли бы вы дать мне какой-нибудь отзыв или советы, как сделать это лучше?
ЕСЛИ я бы попытался обновить свои метки из самого метода Pulse ()Это замедлит мой метод Pulse ()?Если нет, то как я могу обновить 20 ярлыков в MainForm из другого потока?