चैट में एक लंबी चर्चा और बहुत सारी खुदाई के आधार पर, ऐसा लगता है कि कुछ अस्पष्ट परिदृश्यों में जब हम .TrySetResult
जैसी चीजें कर रहे होते हैं, तो TPL समर्पित रीडर थ्रेड को हाईजैक कर रहा होता है। (जो:हम अक्सर करते हैं)। यदि आप एक सिंक्रोनस कॉल करते हैं तो यह एक त्वरित गतिरोध का कारण बनता है, क्योंकि यह संभवतः किसी भी सॉकेट डेटा को संसाधित नहीं कर सकता है यदि यह किसी कार्य को पूरा करने की प्रतीक्षा में व्यस्त है (जो केवल कभी ही पूरा हो जाएगा)। हमारे पास वास्तव में कोड है विशेष रूप से इसे रोकने के लिए , लेकिन ऐसा लगता है कि समाधान वास्तव में बलों . है यह कुछ अन्य परिदृश्यों में होने वाला है। जो... भयानक है। मैं देखूंगा कि मुझे क्या मिल सकता है। लेकिन मूल रूप से, समस्या यह है कि वर्तमान में , कुछ सीमित परिदृश्यों . में , TaskCompletionSource.TrySetResult
टीपीएल को समकालिक निरंतरता चलाने की शक्ति दे रहा है। इसमें Task.WhenAny
. शामिल है ।