Как не ждать старую информацию с события
У меня есть событие, оно постоянно, каждую секунду выдает информацию(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 секунду
}
Пытался это решить массивом тасков, но пока таски запускаются, на это тоже тратится время, и информация приходит старая