मेरे पास एक विधि है जिसे अक्सर कई धागे से बुलाया जाता है। इसमें await FileIO.WriteTextAsync
का उपयोग कर डिस्क पर लिखना शामिल है। यह ठीक काम करता है जब यह किसी एकल थ्रेड से कहा जाता है, लेकिन एक बार मैं एक से अधिक थ्रेड में यह कर शुरू, मैं इस त्रुटि मिलती है:मेट्रो ऐप FileIO.WriteTextAsync एकाधिक थ्रेड
The process cannot access the file because it is being used by another process.
मुझे पता है कि त्रुटि का अर्थ है, लेकिन मैं कैसे काम करने के लिए यकीन नहीं है इसके आसपास। आम तौर पर, यह सुनिश्चित करने के लिए कि एक समय में केवल एक थ्रेड द्वारा फ़ाइल का उपयोग किया जा रहा है, मैं lock(object)
कथन बनाउंगा। हालांकि, यह एक असीमित विधि है और इस तरह मैं lock(object)
कथन के शरीर में await
ऑपरेटर का उपयोग नहीं कर सकता।
कृपया इस परिदृश्य को संभालने के तरीके पर सलाह दें।
वेल स्टीफन यह कोई आश्चर्य की बात नहीं है कि आपके पास इतनी बड़ी प्रतिष्ठा क्यों है। समाधान और इसके लिए आपका व्यक्तिगत स्पर्श शानदार था। मेरी प्रक्रिया पूरी तरह से चल रही है। मैंने आपके लॉगिंग क्लास को गोम लगाने के लिए भी आपके सुझाव का उपयोग किया है जो एक समान समस्या से पीड़ित था। उसके लिए धन्यवाद! – c0D3l0g1c
आपका स्वागत है! –