私のiOSアプリケーションは、一部のコンピューティングにC関数を使用しています。 - (void)viewDidLoadから呼び出したいですが、メインスレッドをフリーズさせたくありません。私はdispatch_async(dispatch_get_main_queue ...ブロックで呼び出すことを試みたが、それでもメインスレッドで呼び出されていた。objective-cメソッドへの関数呼び出しも含めて[self performSelector:InBackground]を呼び出すこともできなかった。そこに私はObjective-CのアプリでバックグラウンドでC関数を実行することができます任意の方法objective-cメソッドからC関数を非同期的にディスパッチする方法
0
A
答えて
2
あなたは例えば、異なるキューを使用する必要があります?。
dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(backgroundQueue, ^{
// do something
});
は詳細についてはDispatch Queuesを参照してください
+0
それをカスタムキューにディスパッチしました。ありがとうございました。 –
0
かのことができます。それをobj-cメソッドに入れ、以下を使って呼び出してください:
[NSThread detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument];
関連する問題
- 1. ディスパッチ非同期コードエラー - 目的C
- 2. 非同期メソッドから非同期メソッドを呼び出す方法
- 3. Javaで非静的メソッド変数(オブジェクト)を同期する方法
- 4. ノードjsで非同期関数を同期的に実行する方法
- 5. 非同期関数の非同期ラップ関数を作成する方法は?
- 6. C#で非同期関数を終了する方法
- 7. 非同期mvc .net:非同期メソッドからビューを返す方法
- 8. Swift:非同期メソッドを同期メソッドでラップする方法は?
- 9. 別のメソッドから非同期メソッドを呼び出す方法
- 10. 非同期コールバック関数から値を返す方法は?
- 11. Azure関数請求非同期メソッド
- 12. 非同期コードから非同期メソッドを呼び出す
- 13. C#非同期呼び出しメソッド定期的に
- 14. C#非同期操作を強制的に同期させる方法
- 15. 非同期メソッドの非同期メソッド
- 16. ElapsedEventHandler内から非同期メソッドを呼び出す方法
- 17. メソッドから非同期の結果を返す方法は?
- 18. この同期再帰関数を非同期にする方法
- 19. 非同期メソッド非同期に新
- 20. 非同期関数
- 21. 非同期関数からハッシュ値を取得する方法は?
- 22. 非同期メソッドを同期する
- 23. 非エスケープクロージャー関数を非同期でディスパッチできますか?エスケープと非エスケープ閉鎖との間の差の
- 24. 非同期コールバックからオブジェクト変数を設定する方法
- 25. 非同期メソッドの作成方法は?
- 26. 非同期非同期/待機メソッドを再帰的に呼び出す
- 27. 非同期コードのセクションをC++関数に挿入する
- 28. JavaScriptで非同期関数をブロックする方法
- 29. 非同期関数の結果を取得する方法は?
- 30. MeteorJS非同期コード同期Meteor.methods関数
'dispatch_get_main_queue()'が問題です。別のキューを使用する必要があります。 – Sulthan
あなたはアップルのスレッディングガイドを読むべきです。バックグラウンドで実行したい場合は、メインスレッドに何かを置くのは意味がありません。また、performSelectorInBackground:は動作します(これを使用するには、CコードをObj-C関数でカプセル化する必要があります)。 – Eiko
はい、それをバックグラウンドキューに入れました。しかし、performSelectorInBackgroundは、objcメソッドでカプセル化された関数では機能しませんでした。 –