Инициировать событие при изменении переменной c#

Salomon1

Client
Joined
Apr 21, 2014
Messages
36
Reaction score
3
Points
8
У меня есть переменная, в неё раз в 10-30 секунд приходят данные по websocket. Как сделать так, что бы проект начинал работу именно после того как обновилась переменная? Проект должен сделать свои дела после обновления переменной и снова ждать пока обновится переменная.

Вариант ставить проверку IF и проверять обновилась переменная или нет - не подходит. Проект у меня работает в 100 потоков и этот IF делает большую нагрузку на процессор.
 

Yuriy Zymlex

Client
Joined
Oct 23, 2016
Messages
6,713
Reaction score
3,478
Points
113
приходят данные по websocket.
https://www.nuget.org/packages/WebSocketSharp/
C#:
private WebSocket InitConn()
{
    WebSocket ws = null;
    try
    {
        ws = new WebSocket("wss://site.com/");

        //ws.OnOpen += (sender, e) => ws.Send("");

        ws.OnMessage += (sender, e) => { LastMsg = e.Data; };

        ws.Connect();

        return ws;
    }
    catch (Exception e)
    {
        ws?.Close();
        throw new Exception("Не удалось подключиться.", e);
    }
}
Подписываешься на OnMessage и по приходу данных (e.Data), OnMessage вызовет твой метод с нужной логикой.
 
  • Thank you
Reactions: ares.bct and Err0r

Salomon1

Client
Joined
Apr 21, 2014
Messages
36
Reaction score
3
Points
8
https://www.nuget.org/packages/WebSocketSharp/
C#:
private WebSocket InitConn()
{
    WebSocket ws = null;
    try
    {
        ws = new WebSocket("wss://site.com/");

        //ws.OnOpen += (sender, e) => ws.Send("");

        ws.OnMessage += (sender, e) => { LastMsg = e.Data; };

        ws.Connect();

        return ws;
    }
    catch (Exception e)
    {
        ws?.Close();
        throw new Exception("Не удалось подключиться.", e);
    }
}
Подписываешься на OnMessage и по приходу данных (e.Data), OnMessage вызовет твой метод с нужной логикой.
Можно сделать что-то подобное прямо в проекте зеннопостера?
Я запускаю код С# по нажатию на кнопку и он ждет обновления переменной, затем делает свои дела и снова ждет.
 

Attachments

Yuriy Zymlex

Client
Joined
Oct 23, 2016
Messages
6,713
Reaction score
3,478
Points
113
Можно сделать что-то подобное прямо в проекте зеннопостера?
Можно.
 

Salomon1

Client
Joined
Apr 21, 2014
Messages
36
Reaction score
3
Points
8
Можно.
Спасибо, а как такое сделать? :-)))
Если не сильно трудно, я думаю многим это будет полезно... информацию найти такую тяжело, уже несколько дней ищу...
 

Кличко

Пользователь
Joined
Mar 22, 2019
Messages
103
Reaction score
5
Points
18
нужно нечто подобное. Изменилось значение глобальной переменной - мы продолжаем действие.
То есть кубик C# ожидания/сна нужен. Условия реально дохера жрут процессора
 

Yuriy Zymlex

Client
Joined
Oct 23, 2016
Messages
6,713
Reaction score
3,478
Points
113

Кличко

Пользователь
Joined
Mar 22, 2019
Messages
103
Reaction score
5
Points
18
Используй паузы в условиях.
Мне это не подходит! нужна моментальная скорость, иначе теряется смысл многопотока.
 

Dr.Pipetka

Client
Joined
Dec 12, 2017
Messages
1,471
Reaction score
990
Points
113
Мне это не подходит! нужна моментальная скорость, иначе теряется смысл многопотока.
Задержка в 200мс сильно повлияет на проект?
 

Кличко

Пользователь
Joined
Mar 22, 2019
Messages
103
Reaction score
5
Points
18
Задержка в 200мс сильно повлияет на проект?
Да, надо без нее вообще. Я сервера пентагона взламываю, тут каждая миллисекунда важна.
 

Yuriy Zymlex

Client
Joined
Oct 23, 2016
Messages
6,713
Reaction score
3,478
Points
113
Гугли Event'ы в C#.
 

Yuriy Zymlex

Client
Joined
Oct 23, 2016
Messages
6,713
Reaction score
3,478
Points
113

Кличко

Пользователь
Joined
Mar 22, 2019
Messages
103
Reaction score
5
Points
18

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)