तो मुझे हाल ही में बताया गया था कि मैं अपना उपयोग कैसे कर रहा था। कार्य के लिए उनका उपयोग करने का उचित तरीका नहीं था। मुझे इंटरनेट पर इसका सबूत अभी तक नहीं मिला है इसलिए मैं आपको लोगों से पूछूंगा और देख सकता हूं कि जवाब क्या है। यहाँ .ContinueWith मैं कैसे उपयोग का एक उदाहरण है:prevTask.Wait() को जारी रखने के लिए अनुशंसित किया गया है (कार्य पुस्तकालय से)?
public Task DoSomething()
{
return Task.Factory.StartNew(() =>
{
Console.WriteLine("Step 1");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 2");
})
.ContinueWith((prevTask) =>
{
Console.WriteLine("Step 3");
});
}
अब मुझे पता है यह एक सरल उदाहरण है और यह बहुत तेजी से चलाया जाएगा, लेकिन अभी प्रत्येक कार्य कुछ लंबे समय तक आपरेशन करता है मान लेते हैं। तो, मुझे जो बताया गया था वह है। कॉन्टिन्यू के साथ, आपको 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");
});
}
स्टार्टन्यू का उपयोग न करें http://blog.stephencleary.com/2013/08/startnew-is-dangerous.html –