मैं प्रोग्रामिंग रूप से सी # 4 में एसिंक्रोनस ऑपरेशंस को श्रृंखलाबद्ध करने का प्रयास कर रहा हूं, जैसे किसी दिए गए स्ट्रीम ऑब्जेक्ट को लिखना। मैंने मूल रूप से यह "मैन्युअल" किया, एक ऑपरेशन से अगले ऑपरेशन में कॉलबैक लगाया, लेकिन मैंने सोचा कि मैं समवर्ती व्हील की पुन: आविष्कार करने की परेशानी को बचाने के लिए .NET 4 कार्य समांतर लाइब्रेरी का प्रयास करूंगा।मैं .NET 4 में कार्य समानांतर लाइब्रेरी के साथ असीमित संचालन कैसे श्रृंखला करूं?
साथ, मैं इतना की तरह कार्य में मेरी async कॉल लपेट प्रारंभ करने के लिए:
public static Task CreateWriteTask(Stream stream, byte[] data)
{
return Task.Factory.FromAsync(stream.BeginWrite, stream.EndWrite, data, 0, data.Length, null);
}
निरंतरता तुल्यकालिक संचालन चेनिंग बहुत आसान है (यदि आप दुर्भाग्यपूर्ण विधि नाम बहाना होगा) बना दिया है:
public static Task ChainFlush(Stream stream, Task precedingTask)
{
return precedingTask.ContinueWith(x => stream.Flush());
}
लेकिन Task.ContinueWith
विधि का कोई संस्करण नहीं है जो TaskFactory.FromAsync
जैसा ही एसिंक ऑपरेशन स्वीकार करता है।
तो, यह सोचते हैं कि मैं TPL, मैं इस विधि का सही क्रियान्वयन के लिए क्या देख रहा हूँ का उपयोग कर के साथ जारी रहती:
public static Task ChainWrite(Stream stream, byte[] data, Task precedingTask)
{
//?
}
टास्क क्रिएशनऑप्शन। अटैचमेंट टॉपरेंट? –