問題タブ [nsthread]
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.
iphone - オブジェクトを NSThread に渡し、メッセージを送信し続けますか?
NSThreadsに関して私が見つけることができるすべての例/チュートリアルと、私がこれまでに対処した唯一の方法は[NSThread detachNewThreadSelector:@selector(processDataMethod) toTarget:self withObject:nil];
、メソッド内のすべての処理を独自のautoreleasePoolなどを備えた別のスレッドに移動することです.
これは、実行して「消える」だけの「一撃」操作に適しています。
バーストで多くの小さな Web サービス呼び出しを行う必要があり、アプリケーションの実行中に存在する NSThread オブジェクトを作成したいと考えています。ほとんどの場合、バーストが発生したときに多くの新しいスレッドが生成されるのを防ぎます。
私は見てinitWithTarget
、[NSThread start]
私がやろうとしていることを扱っているようです。どのように組み立てるか、スレッドがオブジェクトに入るか、オブジェクトをスレッドに渡すかなど、よくわかりません。
疑似コード/説明の方法で、これを実装しようとしています:
私はそれを機能させる方法をいじっていましたが、それを実装するための「パターン」を考え出すのに十分なほど主題を理解していないことに気付きました. 特定のメソッドを呼び出す必要があるたびにスレッドを生成するのではなく、別の連続スレッドに存在するオブジェクトにメソッド呼び出しのクラスターを実装しようとしていると思います (500 ミリ秒以内に連続して 8 回発生する可能性があります)。すべて2分間)。
それが理にかなっており、スレッドの経験がもう少し豊富な人が私を正しい方向に向けてくれることを願っています.
この投稿は、私が試したものにかなり近いものです: performSelect の使用方法...
iphone - 互いに継続的にキャンセルする小さなタスクのバースト用の NSOperations または NSThread?
iPhoneで実行できるように最適化されたWebサービスに対して、「入力時に検索」の実装を作成できるかどうかを確認したいと思います。
アイデアは、ユーザーが単語を入力し始めるということです。「Foo」、新しい文字が入るたびに、XXX ミリ秒待ちます。別の文字を入力するかどうかを確認するために、入力しない場合は、その単語をパラメーターとして使用して Web サービスを呼び出します。
Web サービスの呼び出しとそれに続く結果の解析は、別のスレッドに移動したいと考えています。
私は単純な SearchWebService クラスを作成しました。これには public メソッドが 1 つしかありません。
- (void) searchFor:(NSString*) str;
このメソッドは、検索が既に進行中であるか (ユーザーの入力が XXX ミリ秒遅れているか) をテストし、その後その検索を停止して、新しい検索を開始します。結果の準備が整うと、デリゲート メソッドが呼び出されます。
この機能を「スレッド化」する方法がわかりません。ユーザーが XXX ミリ秒になるたびに新しいスレッドを生成し続ける場合。特に他の検索は必要なく、最後の検索が必要なため、多くのスレッドが存在する悪い場所に行き着きます。スレッドを継続的に生成する代わりに、次の方法で常に 1 つのスレッドをバックグラウンドで実行し続けようとしました。
しかし、「searchObj」オブジェクトの「searchFor」メソッドにアクセスする方法がわからないため、上記のコードは機能し、実行を続けます。オブジェクトにメッセージを送信しsearchObj
たり、オブジェクトを取得したりできませんresultReady
か?
誰かが私を正しい方向に向けてくれることを願っています.threadingは私に悲しみを与えています:)ありがとう。
iphone - @synchronizedブロックの何が問題になっていますか?
アプリケーションには、ゲーム更新スレッドとレンダリング/IO/メインスレッドの2つのスレッドがあります。私の更新スレッドはゲームの状態を更新し、レンダリングスレッドは、ゲームの状態モデルの更新された値と、オブジェクト(gameEngine)内に格納されている他のいくつかの変数に基づいてシーンをレンダリングします。
ゲームスレッドの更新中にレンダリングスレッドが実行されるのは問題なので、解決策は次のように@synchronizedを使用することです。
-update
ただし、レンダリングスレッドは、ブロックの最後の3行との間でgameEngineオブジェクトにアクセスします。どうしてこれなの?
iphone - 非常に奇妙なスレッド エラー メッセージ
バックグラウンドで別のスレッドにメソッドを配置しようとしています。時々、メッセージとともに多くのエラーメッセージが表示されることを除いて、ほとんど機能します
悪いスペルとすべてで。
これが何を意味するか知っている人はいますか?興味深いことに、スレッドが実行されます
より具体的には、次の方法でバックグラウンド プロセスを呼び出します。
その方法は
回答: エラー メッセージは、wax-iPhone からのものです。まず、実行中のスレッドを確認します。(wax-instance.h 行 337)
iphone - 新しいスレッドでのXML解析
私のアプリケーションでは、ユーザーがテーブルビューをスクロールして最初のセルをプルダウンした後、新しいxmlデータをフェッチしたいと思います。データは時系列でテーブルビューに読み込まれるため、更新されたデータは最初のセルの前に表示されます。
このプロセスを新しいスレッドで実行したいので、最良のオプションは何ですか?
NSThreadをサブクラス化し、そのインスタンスを使用します
NSOperationをサブクラス化し、そのインスタンスを使用します
NSThreadメソッドを直接使用する
よろしくお願いします。
iphone - NSThread の終了が早すぎる
Mac/iPhone 用の GData ObjC クライアントを介して Google スプレッドシートにアップロードするアプリがあります。そのままで問題なく動作します。独自のスレッドでアップロード部分を取得しようとしていますが、新しいスレッドでアップロード メソッドを呼び出そうとしています。
見て:
別のスレッドを使用することを忘れた場合、すべてが想定どおりに機能します。私はスレッド プログラミングに慣れていないので、不足しているものがあれば教えてください。
ありがとう!
xcode - バックグラウンドプロセスで画像をロードするxcodeは、テーブルビューを速くスクロールするとアプリケーションをクラッシュさせますか?
リモートの場所から情報を取得するアプリケーションを開発しました...そのため、UITableView のセクションにそれらを配置しました。それに応じて、画像も取得します..このために、バックグラウンド プロセスを配置します(画像のみ..アプリは、テキストベースの情報よりも画像の取得に時間がかかります..)正常に動作しています...しかし、画像の読み込み中にテーブルビューをスクロールすると..クラッシュします。
クラッシュログ:
メイン スレッドまたは Web スレッド以外のスレッドから Web ロックを取得しようとしました。これは、セカンダリ スレッドから UIKit を呼び出した結果である可能性があります。現在クラッシュ中...
答えを改善するためにそのコードを提供してください..
誰かがこれに対する解決策を持っている可能性があります..教えてください..このクラッシュを解決する方法...これにNSThreadクラスを使用しても..しかし、解決策が得られませんでした...
iphone - IconDownloader、遅延ダウンロードの問題
私の問題は説明するのは簡単ですが、解決するのは難しいようです。IconDownloader.m
問題は、Apple の公式の例で提供されているようなカスタム クラスを使用してアイコンをロードすることで、ビューを解放するとクラッシュが回避されます。
クラスをアプリに追加しましたIconDownloader
が、このアプローチが適切なのは、テーブルビューがルートである場合のみであることは明らかです。大きな問題は、ビューがルート ビューでない場合です。Fe: 2 番目のビューのスクロールを開始し (アプリがアイコンをロードするようになりました)、ダウンロードを完了する時間を残さずにルートに戻ると、ビューを新しいアイコンで更新する必要があるため、アプリがクラッシュします。もう存在しません。
考えられる解決策の 1 つは、ビューに を実装することOperationQueue
ですが、このアプローチでは、ビューを変更したときにキューを停止し、戻ってきたときにキューを再起動する必要があり、N 個のキューを持つという考えは私を熱狂させません。
この問題の良い解決策を見つけた人はいますか?
cocoa - NSTaskはメインスレッドの外で安全に使用できますか?
昨日、NSThread内でNSTaskを実行していて、これまでのところスレッドの問題が発生していないため、NSTaskはスレッドセーフではなく、非常に煩わしいとどこかで読みました。
私のコードはこのように構成されています
NSTaskがメインスレッド内でのみ使用されることになっている場合は、スレッドの問題を防ぐために、NSTaskの開始/停止コードをメインスレッドに移動することを検討しています。
NSTaskはメインスレッドの外で使用できますか?
そうでない場合は、NSTaskのスレッドの問題は何でしょうか?
iphone - NSThread対NSOperationQueue対??? iPhoneで
現在NSThread
、別のスレッドで画像をキャッシュするために使用しています。
代わりに:
または、NSOperationQueue
から切り替える理由はありますNSThread
か?GCDはiPhone向けにリリースされたときの4番目のオプションですが、パフォーマンスが大幅に向上しない限り、ほとんどのプラットフォームで機能する方法を使い続けたいと思います。
@ Jon-Ericのアドバイスに基づいて、NSOperationQueue
/NSOperation
サブクラスソリューションを使用しました。それは非常にうまく機能します。このNSOperation
クラスは十分に柔軟性があるため、必要に応じて、呼び出し、ブロック、またはカスタムサブクラスで使用できます。どのように作成してNSOperation
も、実行する準備ができたら、操作キューに入れることができます。操作は、キューに入れるオブジェクトとして機能するように設計されているか、必要に応じてスタンドアロンの非同期メソッドとして実行できます。カスタム操作メソッドを同期して簡単に実行できるため、テストは非常に簡単です。
この質問をして以来、私はいくつかのプロジェクトでこれと同じ手法を使用してきましたが、コードとテストをクリーンで整理され、楽しく非同期に保つ方法に満足することはできませんでした。
A++++++++++再びサブクラス化されます