Асинхронный C# сниппет

krevac

Client
Регистрация
11.11.2018
Сообщения
64
Благодарностей
10
Баллы
8
Доброго времени суток!

Подскажите, можно ли как-то сделать, чтобы асинхронно с кодом выполнялся код, который будет отправлять на сервер статистику и не будет зависеть от кубиков, которые выполняются.

Т.е. условно код зависнет на кубике на час, а статистика будет отправляться каждую минуту, спасибо
 

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 304
Благодарностей
864
Баллы
113
Как то так можно. Но я не уверен что стоит так делать:-)
95922
95923
 
Последнее редактирование:
  • Спасибо
Реакции: krevac, volody00 и Sho

Sho

Активный пользователь
Регистрация
08.08.2022
Сообщения
100
Благодарностей
51
Баллы
28
Доброго времени суток!

Подскажите, можно ли как-то сделать, чтобы асинхронно с кодом выполнялся код, который будет отправлять на сервер статистику и не будет зависеть от кубиков, которые выполняются.

Т.е. условно код зависнет на кубике на час, а статистика будет отправляться каждую минуту, спасибо
Кажись лучше сделать отдельный проект под отправку каждую минуту и стартовать его из главного проекта.
 

krevac

Client
Регистрация
11.11.2018
Сообщения
64
Благодарностей
10
Баллы
8
Как то так можно. Но я не уверен что стоит так делать:-)
Спасибо большое, протестирую.
Не совсем понял почему код с позывным "С тормозами" тормозит...
 

krevac

Client
Регистрация
11.11.2018
Сообщения
64
Благодарностей
10
Баллы
8
Как то так можно. Но я не уверен что стоит так делать:-)
Я так понимаю - тормоза там вылезли из-за таймаута в 333 милисекунды, поставил 30 000 (30 сек) и нагрузки дополнительной не увидел. Посмотрим как будет работать в потоке.

Еще раз большое спасибо
 

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 245
Благодарностей
673
Баллы
113
Спасибо большое, протестирую.
Не совсем понял почему код с позывным "С тормозами" тормозит...
C#:
            new Thread(new ThreadStart(Method)).Start();

            void Method()
            {
                while (true)
                {
                    //СЮДА КОД КОТОРЫЙ ДОЛЖЕН ВЫПОЛНЯТЬСЯ АСИНХРОННО



                    Thread.Sleep(6000); //СЮДА ПАУЗУ В МС МЕЖДУ ВЫПОЛНЕНИЯМИ
                }
            }
 
Последнее редактирование:
  • Спасибо
Реакции: krevac

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 304
Благодарностей
864
Баллы
113
Спасибо большое, протестирую.
Не совсем понял почему код с позывным "С тормозами" тормозит...
С тормозами - с остановкой кода в конце проекта:-)
Код будет выполнятся до тех пор, пока переменная проекта "flag" не будет иметь значение "stop".
Тоесть, на bad end и good end добавляем кубик установить значение переменной flag в stop и когда поток отработал, параллельный код перестанет отрабатывать. В варианте "без тормозов" параллельный код будет работать пока не доработает. Тоесть в постере будет проект уже завершен, а код все равно будет дорабатывать. Поставь Thread.Sleep(1000) и запусти в постере, поймешь о чем я.
 

krevac

Client
Регистрация
11.11.2018
Сообщения
64
Благодарностей
10
Баллы
8
С тормозами - с остановкой кода в конце проекта:-)
Код будет выполнятся до тех пор, пока переменная проекта "flag" не будет иметь значение "stop".
Тоесть, на bad end и good end добавляем кубик установить значение переменной flag в stop и когда поток отработал, параллельный код перестанет отрабатывать. В варианте "без тормозов" параллельный код будет работать пока не доработает. Тоесть в постере будет проект уже завершен, а код все равно будет дорабатывать. Поставь Thread.Sleep(1000) и запусти в постере, поймешь о чем я.
Идешь на опережение моего вопроса... пошел в good end и bad end добавлять stop :-)
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)