मैं निम्नलिखित कोड में एक समस्या है:क्यों टास्क में भी खत्म इंतजार
static void Main (string[] args)
{
Task newTask = Task.Factory.StartNew(MainTask);
newTask.ContinueWith ((Task someTask) =>
{
Console.WriteLine ("Main State=" + someTask.Status.ToString() + " IsFaulted=" + someTask.IsFaulted+" isComplete="+someTask.IsCompleted);
});
while (true)
{
}
}
static async Task MainTask()
{
Console.WriteLine ("MainStarted!");
Task someTask = Task.Factory.StartNew (() =>
{
Console.WriteLine ("SleepStarted!");
Thread.Sleep(1000);
Console.WriteLine ("SleepEnded!");
});
await someTask;
Console.WriteLine ("Waiting Ended!!");
throw new Exception ("CustomException!");
Console.WriteLine ("NeverReaches here!!");
}
मैं सिर्फ नए शुरू कर दिया काम MainTask
से अपवाद प्राप्त करना चाहते हैं। लेकिन नतीजा यह नहीं था कि मुझे क्या उम्मीद थी।
MainStarted!
Main State = RanToCompletion IsFaulted = False isComplete = True
SleepStarted!
SleepEnded!
Waiting Ended!!
जैसा कि आप परिणाम देख सकते हैं, कार्य "प्रतीक्षा समाप्त हो गया !!" से पहले समाप्त होता है। कंसोल लॉग मेरे पास कोई सुराग नहीं है कि MainTask
क्यों MainTask
में await
कमांड के अंदर भी समाप्त हुआ? क्या मुझे कुछ याद आया?
कोई कारण नहीं है कि आप 'MainTask() नहीं कर सकते हैं।जारी रखें (...) 'सीधे? –