में स्काला @suspendable विधि मैं एक नींद समारोह है लगता है।परिवर्तित एक भविष्य
def future(targetFunc: (Int => Unit @suspendable)) : (Int => Future) = {
....
}
class Future {
def await : Unit @suspendable = {
....
}
}
आप इस तरह कुछ करने के लिए सक्षम होना चाहिए:
reset {
val sleepAsync = future(sleep)
val future1 = sleepAsync(2000)
val future2 = sleepAsync(3000)
future1.await
future2.await
/* finishes after a delay of 3000 */
}
sleepAsync करने के लिए दो कॉल सीधे वापस जाने के लिए दिखाई देनी चाहिए और भविष्य # करने के लिए दो कॉल का इंतजार ब्लॉक करने के लिए दिखाई देनी चाहिए। बेशक वे सभी वास्तव में रीसेट के अंत से गिर जाते हैं और देरी के बाद निरंतरता को कॉल करने के लिए कोड जिम्मेदार होता है।
अन्यथा समानांतर में दो @ सस्पेंडेबल फ़ंक्शंस चलाने के लिए एक वैकल्पिक तरीका है और दोनों को पूरा करने की प्रतीक्षा करें?
मैं क्या मैं करना चाहता हूँ की एक कंकाल के साथ एक compilable सार है: https://gist.github.com/1191381
मैंने यह लिखा: https://gist.github.com/1191571 जो काम करता प्रतीत होता है लेकिन यह काफी जटिल लगता है। मुझे लगता है कि मुझे ऐसा करने का एक आसान तरीका याद आ रहा है। – benmmurphy
को यह भी मिला: http://days2011.scala-lang.org/node/138/288 जो इसे और अधिक अच्छी तरह से करने लगता है। – benmmurphy
क्या आपके पास "जीतने" उत्तर के लिए प्राथमिकता है? मुझे बक्षीस पुरस्कार देने की जरूरत है। –