私の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. ASP.NET Webフォーム - 非同期的にWCF非同期メソッドを呼び出す方法
- 7. ノードモジュールから非同期関数をエクスポートする方法
- 8. 「非同期キーワード非同期」関数を「非同期キーワード非同期」関数に変換できますか?
- 9. C#で非同期関数を終了する方法
- 10. 非同期mvc .net:非同期メソッドからビューを返す方法
- 11. Swift:非同期メソッドを同期メソッドでラップする方法は?
- 12. 別のメソッドから非同期メソッドを呼び出す方法
- 13. 非同期コールバック関数から値を返す方法は?
- 14. nodejsの非同期関数から値を返す方法は?
- 15. 非同期関数内で同期する方法
- 16. RxJavaで非同期メソッドを同期する方法は? RxJavaの非同期ウォーターフォール
- 17. Azure関数請求非同期メソッド
- 18. 非同期コードから非同期メソッドを呼び出す
- 19. 他のモジュールでプロミス関数を非同期関数から返す方法
- 20. 非同期メソッドから同期メソッドを呼び出す
- 21. C#非同期呼び出しメソッド定期的に
- 22. 非同期メソッドC#WhenAll issue
- 23. C#非同期操作を強制的に同期させる方法
- 24. 非同期メソッドからクラスを返す方法
- 25. Pythonで非同期メソッドから値を返す方法は?
- 26. メソッドから非同期の結果を返す方法は?
- 27. ElapsedEventHandler内から非同期メソッドを呼び出す方法
- 28. 非同期関数から変数に値を代入する
- 29. 非同期メソッドの非同期メソッド
- 30. 複数の同期関数を非同期で実行する方法は?
'dispatch_get_main_queue()'が問題です。別のキューを使用する必要があります。 – Sulthan
あなたはアップルのスレッディングガイドを読むべきです。バックグラウンドで実行したい場合は、メインスレッドに何かを置くのは意味がありません。また、performSelectorInBackground:は動作します(これを使用するには、CコードをObj-C関数でカプセル化する必要があります)。 – Eiko
はい、それをバックグラウンドキューに入れました。しかし、performSelectorInBackgroundは、objcメソッドでカプセル化された関数では機能しませんでした。 –