2

私はそれにNSOperationsの数を持つNSOperationQueueを持っています。私はコードの特定の部分が並行して実行されないようにしたい。私はこのようなNSLockオブジェクトを使用します。NSOperationは新しいスレッドを生成しませんか?

[myLock lock] 
some critical code 
[myLock unlock] 

残念ながら代わりに、ブロッキングの私は次のエラーを取得呼んで "ロック":

- [NSLockロック]:デッドロック( '(null)' の)

調査の結果、すべてのNSOperationsが同じスレッドで実行されているように見えました。すべての操作は同じスレッドで実行するように見える

NSLog(@"Thread %@\n", self, [NSThread currentThread]); 

:私はスレッドIDをログインした後、その結論を描きました。それらは操作として並行して実行されています。

それは意味がありますか?私は少し混乱しています。私は何かが恋しいですか? NSOperationとNSLockを一緒に使用する際に問題がありますか? (そうでない場合は、私のコードに誤りがあると確信しています)

+1

もっとコードを投稿できますか?より多くの文脈?また、これはMac OS XまたはiOSでですか? –

答えて

4

私はそれを解決しました。私は下にASIHTTPRequestを使用しています。あなたが "+(NSThread *)threadForRequest:(ASIHTTPRequest *)request"をオーバーライドしない限り、明らかにすべてのHTTP呼び出しは同じスレッドで行われます。

申し訳ありません。

+0

mhh。この質問に今答えがあることをどのように示すことができますか?私は質問を削除したり、自分の答えを受け入れることはできません。 :-( –

+1

2日間お待ちください – rano

関連する問題