यह पता लगाने की कोशिश कर रहा है कि यह कोड क्यों लटकता है। मैं परीक्षण के नीचे 3 लाइनों में से किसी एक को हटा सकता हूं और यह लटका नहीं होगा, लेकिन सभी 3 एक साथ इसे लटकते हैं। किसी भी तरह की सहायता का स्वागत किया जाएगा!StackExchange.Redis async कॉल
[Fact]
public async Task CanAddValuesInParallel() {
var muxer = ConnectionMultiplexer.Connect("localhost");
var db = muxer.GetDatabase();
await AddAsync(db, "test", "1");
await db.KeyDeleteAsync("test");
Task.Run(() => AddAsync(db, "test", "1")).Wait();
}
public async Task<bool> AddAsync(IDatabase db, string key, string value) {
return await db.StringSetAsync(key, value, null, When.NotExists);
}
आप 'टास्क.रुन' का उपयोग क्यों करते हैं और क्यों प्रतीक्षा करें() '? – i3arnon
मुझे लगता है कि 'टास्क.रुन (() => AddAsync (डीबी, "टेस्ट", "1") में समस्या है।) प्रतीक्षा करें(); '। यहाँ आप डेडलॉक है। –
यह मेरे कोड का सरलीकृत संस्करण है। यथासंभव सरल होने के लिए इसे तोड़ने की कोशिश कर रहा है। मैं यह समझने की कोशिश कर रहा हूं कि क्या हो रहा है। –