Я пишу поток, который должен быть остановлен при нажатии кнопки.
Это означает, что для каждого моего действия я также хочу проверить, установлен ли флаг остановки, чтобы я мог правильно остановиться.
Это фрагмент кода, который должен прояснить ситуацию:
while([self checkForDrop] != 0 && STOP == FALSE){
sleep(0.4);
} if (STOP == TRUE){
return 99;
}
ret = [self doSomething]
if(ret == 0){
[self updateStatus]
} else {
printf("%d", ret) // Print error
}
ret = [self doSomethingElse]
if(ret == 0){
[self updateStatus]
} else {
printf("%d", ret) // Print error
}
... and so on ...
Каждый раз, когда я что-то делаю, я также хочу проверить, выполняется ли условие (STOP == TRUE)
, еслиэто значит, что программа должна вернуть 99 и остановиться.
Я мог бы написать оператор if для каждой строки, но это сделало бы код нечитаемым и уродливым.Я предполагаю, что я не единственный, кто наткнулся на это, поэтому должен быть лучший способ.