問題タブ [cfrunloop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 非同期タスクの nsoperation 内で Runloop を使用する
NSURLSession を使用して多くのファイルをダウンロードする必要があるユース ケースがあります。
セッション タスクがタイムアウトしないようにするには、セッション タスクを操作キューに配置し、同時ダウンロードの量を制限して飢えさせないようにする必要があります。
私の考えは、タスクの再開を nsoperation にロードし、それらを nsoperationqueue にロードして、同時アクティビティの数を制限するというものです。
問題は、[タスクの再開] を呼び出すと、コードが終了し、ファイルのダウンロードが完了するのを待っているにもかかわらず、nsoperation が完了したと見なされることです。
ここにいくつかのコードがあります。
コールバックを待っている間、nsoperation スレッドを維持するにはどうすればよいですか? また、nsrunloop を使用して、ポートを NSMachPort に追加しようとしました。それは役に立たなかったようです。
また、タスクを再開するとタイムアウト タイマーが開始されるため、NSURLSession で HttpMaximumConnectionsPerHost を設定しても役に立ちません。つまり、以前よりも多くのタイムアウトが発生します。
ios - iOS 11.2 CFRunLoopServiceMachPort でアプリがクラッシュする
アプリで CFRunLoopServiceMachPort がクラッシュすることがいくつかあります。この根本的な原因を突き止めようとしてきました。
メイン スレッドでの輻輳を回避するために、バックグラウンド スレッドで実行しているタスクがいくつかあります。これはこれで一役買っているのではないかと思います。
正直なところ、どこに問題があるのか わかりませんでした。
以下は私のクラッシュログです: