Как не ждать старую информацию с события

У меня есть событие, оно постоянно, каждую секунду выдает информацию(websocket в общем).

У меня есть действие после получения сообщения(OnMessage), оно занимает время. И пока оно заняло это время, например 1 секунду, у меня отсает, и приходят старые сообщения. Т.е вместо свежей информации, он выдает старую, которая прошла уже.

Как мне это обойти? Чтобы он не делал действие со старой информацией, а делал действия с новой.

Выглядит это примерно так

Main:
socket.OnMessage += RecerveMessage;

Действие на message

private void RecerveMessage(object sender, MessageEventArgs message)
{
    int numbertask = taskchek.taskarray.ToList().FindIndex(x => x.Status == TaskStatus.RanToCompletion);
            if(numbertask != -1)
            taskchek.taskarray[numbertask] = Task.Run(async() =>
            {
                try
                {
                    Console.WriteLine(Double.Parse(JsonConvert.DeserializeObject<Data>(message.Data).p.Replace(".", ",")) + " : " + numbertask);
                    Thread.Sleep(5000);
                }
                catch (Exception)
                {
                    Console.WriteLine("First Message " + message.Data);
                }
            });
   // Действие, занимающее 1 секунду
}

Пытался это решить массивом тасков, но пока таски запускаются, на это тоже тратится время, и информация приходит старая


Ответы (0 шт):