कोड का नमूना:Task.Run से अपवाद फेंकने प्रदर्शित "उपयोगकर्ता कोड से प्रबंधित नहीं" संदेश
using System;
using System.Threading.Tasks;
public class Program
{
public static void Main()
{
Console.WriteLine("Start");
Foo f = new Foo();
f.FooAsync();
}
public class Foo
{
public async void FooAsync()
{
try
{
await Task.Run(() =>
{
Console.WriteLine("Throwing");
throw new Exception();
});
}
catch (Exception)
{
Console.WriteLine("Caught");
}
}
}
}
ऊपर कोड जब सी # बेला से या मेरे पीसी प्रिंट पर कंसोल से चलाएँ:
Start
Throwing
Caught
हालांकि
, जब मैं दृश्य स्टूडियो से चलाने (डिबग मोड में F5), मैं निम्न संदेश मिलता है:
+०१२३५१६४१०मुझे समझ में नहीं आता कि मुझे विजुअल स्टूडियो से "उपयोगकर्ता कोड में प्रबंधित नहीं किया गया" संदेश क्यों मिलता है हालांकि इसे कंसोल या सी # पहेली से चलाना ठीक है। क्या मुझसे साफ़ - साफ़ कुछ चीज़ चूक रही है?
अद्यतन
मैं मुख्य में काम f.FooAsync().Wait();
पर इंतजार कर की कोशिश की है, लेकिन अभी भी अपवाद बिना क्रिया (एक ही त्रुटि संदेश) होने के रूप में रिपोर्ट किया गया है।
कोड ठीक है, यह आपकी डीबगर सेटिंग्स गलत है। "ओपन अपवाद सेटिंग्स" लिंक पर क्लिक करें, फेंक दिया चेकबॉक्स अनचेक करें। यदि आपने इसे जानबूझकर चालू कर दिया है तो बस जारी रखें पर क्लिक करें। –
@ हंसपैसेंट: धन्यवाद। मैंने पाया [यहां समस्या के बारे में अधिक जानकारी] [http://stackoverflow.com/a/16925282/906773)। –