What's new
  • Visit Rebornbuddy
  • Visit Resources
  • Visit API Documentation
  • Visit Downloads
  • Visit Portal
  • Visit Panda Profiles
  • Visit LLamamMagic

Прерывание потока\программы

Status
Not open for further replies.

Gord

New Member
Joined
Dec 1, 2014
Messages
96
Reaction score
0
Скажите пожалуйста, как правильно прервать поток или скрипт целиком во избежание крэша АБ ?
 
Нужно проследить чтобы все циклы были завершенными. Если цикл не большой по времени, то используй булевский флаг, котроый при завершении скрипта переводишь в false например в PluginStop
Code:
...
bool _myFlag = true;
while (_myFlag)
{
...
}
...

public void PluginStop()
        {            
            _myFlag = false;            
        }
Если цикл продолжительный по времени, делай через Abort (да, это не правильно, но я другого способа не знаю). в PluginStop потом сделать проверку на данный поток.

Code:
public void PluginStop()
        {
            if (myThread != null
                && (myThread.ThreadState != ThreadState.Stopped
                || myThread.ThreadState != ThreadState.AbortRequested
                || myThread.ThreadState != ThreadState.Aborted
                || myThread.ThreadState != ThreadState.StopRequested)) myThread.Abort();
        }
 
не прокатывает такой вариант, если например выполняется в потоке или в скрипте продолжительная команда.
например MoveTo или CollectItems.....
А поток нужно убить.
Я в с# очень недавно разбираюсь, может есть какие то грамотные обработчики исключений ? что бы это все на пользователя не вываливалось
 
не прокатывает такой вариант, если например выполняется в потоке или в скрипте продолжительная команда.
например MoveTo или CollectItems.....
А поток нужно убить.
Я в с# очень недавно разбираюсь, может есть какие то грамотные обработчики исключений ? что бы это все на пользователя не вываливалось
я же написал, если длительные команды, то через Abort. Всё прокатывает, у самого Фермер так работает уже несколько месяцев стабильно и пользуются им очень многие, не жалуются :)
 
вот именно тред.аборт и вываливает АБ в краш.
Может надо переустановить.
 
Что за поток? Используете ли формы? Какую ошибку пишет в системном журнале приложений Windows?
 
Status
Not open for further replies.
Back
Top