मैं एक समाधान लिख रहा हूं जहां मैं कुछ कॉन्फ़िगरेशन फ़ाइलों का उपयोग करता हूं जो रनटाइम पर संपादन योग्य होना चाहिए। मैं इस उद्देश्य के लिए FileSystemWatcher
का उपयोग कर रहा हूं और इससे पहले कभी भी इसमें कोई समस्या नहीं थी लेकिन अब यह 'नाम बदलें' घटना पर सीटीडी का कारण बन रहा है।FileSystemWatcher डेस्कटॉप पर क्रैश का कारण बनता है
private static int _s_renamed;
private static int _s_created;
private static int _s_errors;
private static void monitorConfiguration(string configRootFolder)
{
var fsw = new FileSystemWatcher(configRootFolder, ConfigFilePattern)
{
NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName,
IncludeSubdirectories = false
};
fsw.Renamed += (sender, args) => ++_s_renamed; // <-- ! CTD efter this one !
fsw.Created += (sender, args) => ++_s_created;
fsw.Error += (sender, args) => ++_s_errors;
fsw.EnableRaisingEvents = true;
}
दुर्घटना FileSystemWatcher
ऐसा लगता है से आता है:
यह (बेकार) कोड का टुकड़ा मेरी सेटअप में समस्या को पुन: होगा। यदि मैंने FileSystemWatcher.Renamed
के लिए ईवेंट हैंडलर में ब्रेकपॉइंट सेट किया है तो यह हिट हो जाता है लेकिन जब मैं इससे बाहर निकलता हूं तो ऐप क्रैश हो जाता है। यदि मैंने FileSystemWatcher.Created
ईवेंट हैंडलर में ब्रेकपॉइंट सेट किया है तो ऐसा नहीं होता है।
कोई सुझाव?
संपादित करें 1: मैं एक विंडोज 7 x64 पर .NET 4 चल रहा हूँ (अंतिम) मंच मैं कई समस्याओं के इस प्रकार के विषय में विचार विमर्श देखा है लेकिन सभी लोगों को यूआई सामान अपडेट करने का प्रयास करने के लिए संबंधित कर दिया गया है (जो मुख्य/यूआई थ्रेड से किया जाना चाहिए) ईवेंट हैंडलर से। यही कारण है कि मैं प्रयोगात्मक कोड में कुछ काउंटर बढ़ाने की कोशिश करता हूं।
वहाँ एक अपवाद है? – David
नहीं, ऐप डेस्कटॉप पर क्रैश हो जाता है और ऐसा लगता है कि मैं इसे पकड़ नहीं सकता। यह एक डब्ल्यूपीएफ एप्लीकेशन है और मैं सभी अनचाहे अपवादों को पकड़ रहा हूं (एप्लिकेशन। डिस्पैचर अननहेल्ड अपवाद) लेकिन यह पकड़ा नहीं गया है। –
सीटीडी क्या है और यह क्या करता है? – Gabe