ファイナンスベースのアプリケーションを作成しています。アプリケーション起動時に[NSDecimalNumber setDefaultBehavior:(MyHandlerSubclass)]
と呼ぶため、NSDecimalNumberオペレーションのカスタム動作が必要です。しかし、NSDecimalNumberヘッダーファイルから、各スレッドでと呼び出す必要があることが分かりました。 10進数の計算が実行されている可能性があります。NSDecimalNumber、NSDecimalNumberHandler、およびスレッド
明示的に[(NSDecimalNumber *) performOperation:withBehavior:]
を呼び出し、毎回MyHandlerSubclassを渡すことができましたが、冗長で疲れています。冗長性を排除し、setDefaultBehavior:を維持するための方法はありますか?間違った動作で異なるスレッドで計算が行われることについて心配する必要はありませんか?そうするために私自身のラッパーを書く必要があるように思えます。
アプリケーションでスレッドを頻繁に使用していますか?一般的には、メインスレッド、および多分1〜2ワーカースレッドが必要ですが、それ以上は必要ありません。あなたのスレッドを正しく実装すれば、あなたのコードは面倒なものにならないはずです。スレッドの代わりに 'NSRunLoop'、' NSOperationQueue'と 'GCD'をチェックしたいかもしれません。 –
リチャード:これはスレッドをうまく使用する方法に関する質問ではありません。私はそれらのすべてについて知っています。私は広範囲にGCDキューを使用しています。あなたが知っているように、実行中のスレッドが保証されていません。 – refulgentis
同じことがキューに適用されます。 (a)は、グローバル並行キュー内の数十または数百のブロックをスケジューリングするべきではなく、(b)アプリケーション内にいくつかの他のキューを持つべきではありません。 – bbum