एक बहुत ही बुनियादी लकड़हारा के लिए इस कोड के साथ:इस कोड में लॉक क्यों काम नहीं कर रहा है?
The process can't access the file because its being used by another file.
क्यों लॉक का उपयोग करने के धागे को रोकने नहीं है:
lock (string.Concat("LogWritter_", this.FileName))
{
using (var fileStream = File.Open(this.FileName, FileMode.Append, FileAccess.Write, FileShare.Read))
{
using (var w = new StreamWriter(fileStream))
{
w.Write(message);
}
}
}
जब मैं कुछ धागे से यह कोशिश एक साथ मैं जल्दी से त्रुटि मिलती है एक ही समय में फाइल?
इससे कोई फर्क नहीं पड़ता कि थ्रेड एक ही उदाहरण या एक ही फ़ाइल में अलग-अलग उदाहरणों को कॉल करते हैं। मैंने सोचा कि यह विंडोज़ में फाइलें लिखते समय कुछ स्थगित होने के कारण हो सकता है, लेकिन लिनक्स पर भी वही होता है।
हैश कोड! = संदर्भ। 'संदर्भ एक्वाल्स' का प्रयोग करें। –
हैश कोड! = संदर्भ – TheBuzzSaw
हैश कोड स्ट्रिंग के * सामग्री * का एक पाचन है। संदर्भ उस विशेष उदाहरण के बारे में विवरण रखता है। कंपाइलर में समान सामग्री वाले हार्ड-कोडेड तारों को स्वचालित रूप से संयोजित करने के विकल्प होते हैं, लेकिन रन-टाइम कुछ तारों को गठबंधन करने के लिए रेट्रो-तुलनाओं के टन नहीं करता है। – TheBuzzSaw