मैं एक असिंक डेडलॉक में फंस गया हूं और मैं इसे ठीक करने के लिए सही वाक्यविन्यास नहीं समझ सकता। मैंने कई अलग-अलग समाधानों को देखा है, लेकिन समस्या का कारण बनने के बारे में काफी जानकारी नहीं मिल रही है।Async Await हैंडलर डेडलॉक
मैं बैकएंड के रूप में Parse का उपयोग कर रहा हूं और तालिका में लिखने के लिए हैंडलर का उपयोग करने की कोशिश कर रहा हूं।
public class VisitorSignupHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//Get the user's name and email address
var UserFullName = context.Request.QueryString["name"].UrlDecode();
var UserEmailAddress = context.Request.QueryString["email"].UrlDecode();
//Save the user's information
var TaskToken = UserSignup.SaveUserSignup(UserFullName, UserEmailAddress);
TaskToken.Wait();
....
}
public bool IsReusable { get { return false; } }
}
तो यह मेरे बीच स्तरीय बुला रहा है: मेरे हैंडलर तरह दिखता है
public static class UserSignup
{
public static async Task SaveUserSignup(string fullName, string emailAddress)
{
//Initialize the Parse client with the Application ID and the Windows key
ParseClient.Initialize(AppID, Key);
//Create the object
var UserObject = new ParseObject("UserSignup")
{
{"UserFullName", fullName},
{"UserEmailAddress", emailAddress}
};
//Commit the object
await UserObject.SaveAsync();
}
}
हालांकि इस Wait()
पर अटक जा रहा है। मैं इस धारणा के तहत था कि Wait()
बस कार्य को पूरा करने की प्रतीक्षा करेगा, फिर सामान्य परिचालनों पर वापस आएं। क्या यह सही नहीं है?
धन्यवाद! मैंने इसे पोस्ट करने से पहले अपने ब्लॉग को पढ़ा और सिंटैक्स को काफी समझ नहीं पाया। यह बहुत अच्छा काम करता है। इसकी प्रशंसा करना। –
आपका स्वागत है! अनुलेख [टीएपी दस्तावेज] दें (http://msdn.microsoft.com/en-us/library/hh873175.aspx) एक अच्छा पढ़ा; कुछ 'async' सम्मेलन हैं जो विशेष रूप से 'SaveUserSignup' को' SaveUserSignupAsync' 'नाम देने पर लागू होंगे। –