так что в настоящее время у меня есть приложение, которое имеет 2 процесса.Один процесс - это pining, а ping - это запись результатов в массив.
Другой процесс заключается в обновлении интерфейса пользователя каждую секунду с помощью таймера.То, что является обновлением, является MSchart, чтобы быть более точным.
Вот так я настроил таймер:
readonly System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
myTimer.Interval = 1000;
myTimer.Tick += WriteFunction;
Теперь этот метод я вызываю каждую секунду для обновления пользовательского интерфейса / собственно графика:
private void WriteFunction(object objectInfo, EventArgs e)
{
foreach (NetPinger.source.AddGraph b in graphList)
{
b.fileRead();
}
}
Метод обновления диаграммы находится внутри другого класса и выглядит следующим образом:
public void fileRead()
{
double unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
chart_holder.Series[0].Points.Clear();
for (double i = unixTimestamp; unixTimestamp - graphSizing < i; i--)
{
bool exists;
try
{
exists = Array.Exists(file, element => element.XValue == i);
exists = true;
}
catch
{
exists = false;
}
try
{
if (exists == false)
{
DataPoint point = new DataPoint(i, 0);
chart_holder.Series[0].Points.Add(point);
}
else
{
DataPoint point = Array.Find(file, element => element.XValue == i);
chart_holder.Series[0].Points.Add(point);
}
}
catch(Exception ex)
{
MessageBox.Show(Convert.ToString(ex));
}
}
}
Теперь я заметил, что если graphSizing (число, через которое я перебираюсь), остается низкимпроизводительность неплохая, и все синхронизировано (несколько графиков из пользовательского интерфейса обновляются одновременно и т. д.), как и должно быть.Но как только я поднимусь, скажем, что 50 или даже 250 (какова должна быть цель) обновление пользовательского интерфейса и графика идет очень-очень медленно.Он обновляется только каждые 3 секунды, а пользовательский интерфейс в целом очень медленный и медленный.
Есть ли у кого-нибудь совет, как мне поддерживать хорошую производительность или где я чертовски заметил, что пользовательский интерфейс такой медленный?Для дальнейших вопросов или более подробной информации не стесняйтесь спрашивать.
Большое спасибо за ваше время и помощь.
Привет C.User