RubyMotion アプリケーション内でこれを行っています。
Dispatch::Queue.concurrent('google').async {
BubbleWrap::HTTP.get("http://google.com") do |response|
p response.body.to_str
end
}
この呼び出しは完了しません。
ただし、BubbleWrap コードを Dispatch キューの外に置くと、問題なく完了します。
RubyMotion アプリケーション内でこれを行っています。
Dispatch::Queue.concurrent('google').async {
BubbleWrap::HTTP.get("http://google.com") do |response|
p response.body.to_str
end
}
この呼び出しは完了しません。
ただし、BubbleWrap コードを Dispatch キューの外に置くと、問題なく完了します。
BubbleWrap::HTTP
は、非同期処理をRunLoopNSURLConnection
に依存する の抽象化です。残念ながら、RunLoops は GCD キューに設定されておらず、GCD キューで実行ループを開始する方法がわかりません。上記が必要になったときは、 new のインスタンス化に頼り、代わりに実行ループを手動で開始しました。NSThread
action = lambda do
runLoop = NSRunLoop.currentRunLoop
BW::HTTP.get("http://www.google.com") do |response|
NSLog("Fetched Google!")
end
runLoop.run
end
thread = NSThread.alloc.initWithTarget action, selector:"call", object:nil
thread.start