Я пытаюсь создать чат в форме C#, и я создал два таймера; один из них проверяет каждую секунду, если кто-то что-то написал, другой отправляет каждые 1 секунду сообщение «Я в сети» или «Я в сети» зависит от того, что я установил; проблема в том, что я слишком много рассылаю спам, даже если я сделал, если больше не отображается спам-сообщения; но проблема в том, что даже если я не вижу сообщений, чат отстает, я имею в виду больше времени, я позволяю ему открывать больше лаг, чем это делает. Например, если я пишу сообщение с другой консоли, я вижу его через 30 секунд , и время увеличивается, если оно открывается. Итак, я попытался изменить интервал таймера, который посылает «ON» или «OFF» на 1 минуту, но когда я пытаюсь запустить программу, он сработает, он работает, только если таймеры имеют одинаковые интервалы, и я не понять, почему я ищу решение ...Два таймера с двумя разными интервалами C# Форма
МОЙ ПРОБЛЕМ ЯВЛЯЕТСЯ, ЧТО Я ХОЧУ ПРИМЕНЯТЬ РАЗЛИЧНЫЕ ВРЕМЕННЫЕ ИНТЕРВАЛЫ, И КОГДА Я ДЕЛАЮ, ЧТО ПРОГРАММА РАСПРОСТРАНЯЕТ, ЭТО ЗАМОРАЖИВАНИЕ .. ЭТО НЕ РАБОТАЕТ ЛЮБОЙ.
-> Я хочу установить таймер проверки по умолчанию на 100 мс и установить таймер отправителя статуса на 60000 (1 минута); но если я это сделаю, программа зависает; это не дает мне ошибку, но я больше ничего не могу сделать.
Таймеры инициализацией:
private void Form1_Load(object sender, EventArgs e)
{
ControlTimerInbox.Enabled = true;
ControlTimerInbox.Start();
StatusTimer.Enabled = true;
StatusTimer.Start();
}
Это один предназначен для управления с таймером:
private void ControlTimerInbox_Tick(object sender, EventArgs e)
{
mesric = Encoding.ASCII.GetString(receive.Receive(ref ipremoto));
if (mesric.Contains("OFF!")==true)
{
if (mesric.Contains("GruppoUno") == true)
{
GruppoUnoStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statusoff.jpg");
GruppoUnoLblStatus.ForeColor = Color.Red;
}
else
if (mesric.Contains("GruppoDue") == true)
{
GruppoDueStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statusoff.jpg");
GruppoDueLblStatus.ForeColor = Color.Red;
}
else
if (mesric.Contains("GruppoTre") == true)
{
GruppoTreStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statusoff.jpg");
GruppoTreLblStatus.ForeColor = Color.Red;
}
else
if (mesric.Contains("GruppoQuattro") == true)
{
GruppoQuattroStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statusoff.jpg");
GruppoQuattroLblStatus.ForeColor = Color.Red;
}
else
if (mesric.Contains("GruppoCinque") == true)
{
GruppoCinqueStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statusoff.jpg");
GruppoCinqueLblStatus.ForeColor = Color.Red;
}
}
else
if (mesric.Contains("ON!")==true)
{
if (mesric.Contains("GruppoUno") == true)
{
GruppoUnoStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statuson.jpg");
GruppoUnoLblStatus.ForeColor = Color.Green;
}
else
if (mesric.Contains("GruppoDue") == true)
{
GruppoDueStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statuson.jpg");
GruppoDueLblStatus.ForeColor = Color.Green;
}
else
if (mesric.Contains("GruppoTre") == true)
{
GruppoTreStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statuson.jpg");
GruppoTreLblStatus.ForeColor = Color.Green;
}
else
if (mesric.Contains("GruppoQuattro") == true)
{
GruppoQuattroStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statuson.jpg");
GruppoQuattroLblStatus.ForeColor = Color.Green;
}
else
if (mesric.Contains("GruppoCinque") == true)
{
GruppoCinqueStatusPicture.BackgroundImage = Image.FromFile(@".\tvchat\statuson.jpg");
GruppoCinqueLblStatus.ForeColor = Color.Green;
}
}
else
{
nome = Dns.GetHostByAddress(ipremoto.Address);
CampoChat.Text += "(" + DateTime.Now + ")" + mesric + "\n";
ControlTimerInbox.Enabled = true;
ControlTimerInbox.Start();
}
Это один для ОТПРАВКИ СТАТУС:
private void StatusTimer_Tick(object sender, EventArgs e)
{
if (status == true)
{
mes = "GruppoDue:ON!";
send.Send(Encoding.ASCII.GetBytes(mes), mes.Length, "192.168.7.255", 11000);
}
else
{
mes = "GruppoDue:OFF!";
send.Send(Encoding.ASCII.GetBytes(mes), mes.Length, "192.168.7.255", 11000);
}
StatusTimer.Start();
, если вы можете разместить код, это поможет нам решить эту проблему. –
Там вы идете ... –
, пожалуйста, добавьте часть, в которой вы создаете экземпляр и инициализируете таймеры, и где вы добавляете к ним события. – Ingo