Я пишу приложение на основе финансов, и мне нужно настраивать поведение для операций NSDecimalNumber, поэтому я вызываю [NSDecimalNumber setDefaultBehavior:(MyHandlerSubclass)]
при запуске приложения. Однако я только что узнал из файла заголовка NSDecimalNumber, что его нужно называть на каждом потоке вычисления десятичных чисел могут выполняться.NSDecimalNumber, NSDecimalNumberHandler и потоки
Я мог бы прямо позвонить [(NSDecimalNumber *) performOperation:withBehavior:]
, передавая мой MyHandlerSubclass каждый раз, но он растет многословным и утомительным. Есть ли способ устранить многословие, поддерживать setDefaultBehavior :, и не нужно беспокоиться о том, что вычисления выполняются в разных потоках с неправильным поведением? Похоже, мне пришлось бы написать свою собственную упаковку, чтобы сделать это.
Как часто вы используете темы для своего приложения? Как правило, вы хотите основной поток и, возможно, 1-2 рабочих потока, но не более того. Ваш код не должен утомиться, если вы правильно выполняете свои потоки, вы также можете проверить «NSRunLoop», «NSOperationQueue» и «GCD» вместо потоков. –
Richard: это не вопрос о том, как лучше всего использовать потоки, я знаю обо всех этих. Я часто использую очереди GCD, и нет никакой гарантии, на какой поток они работают, как вы знаете. – refulgentis
То же самое относится к очередям; вы (а) не должны планировать десятки или сотни блоков в глобальных параллельных очередях и (b) не должны иметь больше нескольких других очередей в приложении (что на самом деле является просто другой формой (a)). – bbum