Java には、新しいスレッドでタスクを実行できる Future または FutureTask があります。その後、実行結果を元のスレッドに返します。それを実現できるSwiftの機能はありますか?
3155 次
6 に答える
2
Futures と promisesと呼ばれるある種の言語構造を調べています。次のようないくつかの例を見つけることができます。
- https://bitbucket.org/al45tair/async (Swift の C# に似た async/await プリミティブ)
- https://github.com/mxcl/PromiseKit (Promise キットhttp://promisekit.org/ )
- 前述のhttps://github.com/Thomvis/BrightFutures
ただし、言語自体にはそのような機能がありません。
于 2014-10-23T23:18:17.507 に答える
2
言語 (標準ライブラリを意味する) によって提供されていませんが、独自のライブラリを作成するか、単にhttps://github.com/Thomvis/BrightFuturesなどのライブラリを使用することができます。
于 2014-10-23T23:12:34.623 に答える
1
Apple が Swift で Futures または Promises を実装した場合、彼らはそう言うでしょうか? 結局のところ、彼らは常に未来の製品について話すことを避けています. ;)
とにかく、元の質問は、一般的に非同期作業を行う方法に関するものであり、Futures/Promises スタイル モデルで具体的に行うことではありません。したがって、他の回答で言及されているサードパーティのライブラリはそのモデルに最適ですが、そのモデルがなくても、ObjC:dispatch
またはNSOperation
. 例えば:
NSOperationQueue().addOperationWithBlock {
// do background work
NSOperationQueue.mainQueue().addOperationWithBlock {
// back to main thread for follow up work
}
}
于 2015-06-12T20:28:26.690 に答える