इसलिए मुझे हाल ही में बताया गया था कि मैं कैसे अपना उपयोग कर रहा था। टास्क के लिए कॉन्ट्यूविथ उन्हें इस्तेमाल करने का उचित तरीका नहीं था। मुझे अभी तक इसका सबूत इंटरनेट पर नहीं मिला है इसलिए मैं आप लोगों से पूछूंगा और देखूंगा कि इसका जवाब क्या है। यहाँ मैं कैसे उपयोग का एक उदाहरण है।
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 3");
});
}
अब मुझे पता है कि यह एक सरल उदाहरण है और यह बहुत तेजी से चलेगा, लेकिन यह मान लें कि प्रत्येक कार्य कुछ लंबा ऑपरेशन करता है। तो, जो मुझे बताया गया था कि .ContinueWith में, आपको prevTask.Wait () कहना होगा; अन्यथा आप पिछले कार्य समाप्त होने से पहले काम कर सकते थे। क्या यह भी संभव है? मैंने मान लिया कि मेरा दूसरा और तीसरा कार्य केवल एक बार उनके पिछले कार्य के पूरा होने के बाद ही चलेगा।
मुझे बताया गया था कि कोड कैसे लिखें:
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
prevTask.Wait();
Console.WriteLine("Step 3");
});
}