Я пытался изменить приложение, разработанное с другом в прошлом ...Threading ... начать/приостановить ..set/сброс
это приложение делает онлайн-торговли (с использованием API разработан для C#) .. так в основном у меня есть структура приложения, где я установил несколько параметров конфигурации, которые пользователь может проверить или снять, и есть кнопка запуска и остановки
при нажатии кнопки запуска. Я создаю поток, передавая функцию, которая будет выполнять все подпитки и другие и присвоение его основной форме класс
betbot _mybot = this; # mybot is form class
this.main_thread = new Thread(new ThreadStart(_mybot.aping_function);
this.main_thread.Start();
и нажав кнопку остановки ,,, приложение просто подвешивание нити
this.main_thread.Suspend()
теперь останавливается приложение и единственный путь для возобновления работы приложения (подражания) должны нажать кнопку запуска и возобновить нить ..
в новой функции, я хочу эту нить, чтобы остановить и перезапустить автоматически ..every время он попадает определенный стоп-лосс и начать все сначала ... но я не мог сделать это
, что я устал это ManualResetEvent, как после
private static ManualResetEvent mrse = new ManualResetEvent(true);
когда определенное событие совпадает в методе aping_function я делать mrse.reset() и mrse.set() .. но это, похоже, не влияет (не перезапуск полностью)
if (stop_loss_condition_met)
{
this.Print1("Bot Is stopped Automatically");
mrse.Reset();
this.Print1("Bot Is re-started Automatically");
mrse.Set();
}
, как я могу добиться этого
Итак, я со своей aping_function создаю какое-то время (true) {mrse.WaitOne(), а затем внутри моего условия if, если я сделаю mrse.reset() и mrse.set() в том же порядке ..next. Далее ... поток остановится там и перезапустится с линии WaitOne..правленно? – MrPandav
Да, вы правы –