есть программа которая работает как сервер TCP и принимает данные через сокеты.
// получаем адреса для запуска сокета
ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 777);
// создаем сокет
listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
// связываем сокет с локальной точкой, по которой будем принимать данные
listenSocket.Bind(ipPoint);
// начинаем прослушивание
listenSocket.Listen(10);
handler = listenSocket.Accept();
while (true)
{
string[] builder;
int bytes = 0; // количество полученных байтов
byte[] data = new byte[256]; // буфер для получаемых данных
do
{
bytes = handler.Receive(data);
builder = Encoding.UTF8.GetString(data, 0, bytes).Split(' ');
}
while (handler.Available > 0);
Именно в builder, будут хранится принятые значения.
BeginInvoke(new DelegateRead1(ReadInfo), builder, elem1, textBoxKey1.Text, textBoxKey2.Text, numericUpDownPips.Value, 1);
Это функция которую необходимо запустить.
Необходимо при получении данных, запустить таймеры на каждое принятое значение и хранить его, и выполнить функцию. Если время таймера не закончилось и пришло новое значение, то необходимо запустить новые таймеры с новыми значениями и заного запустить старые. Подскажите как правильно будет решить эту задачу? По создании множества таймеров особой проблемы нет, больше вопросов к тому как мне их контроллировать, что бы при получении еще одного значения проверять какие таймеры сейчас еще работают и передать им повторное выполнение функции?
Возможно я непонятно объяснил, попробую на примере:
Время истечения таймера 5 секунд
Получаем 3 значения из builder, на каждое назначаем таймер и запоминаем их.
Ждем следующих значений из builder.......
Прилетело еще 1 значение в builder, создаем новый таймер и его оставляем в ожидание, а прошлые три (если время таймеров не истекло) посылаем в метод где сравниваем первое и последнее полученное значение.
Вопрос только в том, как мне взаимодействовать с таймерами которые уже были запущенны ранее?
Попробую еще проще, как можно отловить все рабочие таймеры созданные динамически в программе?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу создать связь: пост может иметь одного автора, у которого может быть множество постов
Делаю выравнивание текста в DataGridTextColumn по вертикали
После создания WPF-приложения не отображается дизайнер окон, есть только файл с разметкой xamlКак открыть дизайнер?