2011-03-24 7 views
5

मुझे अपने एप्लिकेशन में एक आवश्यकता है जहां मुझे नेटवर्क ड्राइव, में फ़ाइल बनाने की आवश्यकता है, लेकिन जब नेटवर्क डिस्कनेक्ट हो गया है तो प्रोजेस में फ़ाइल निर्माण थोड़ी देर के लिए लटकता है और अपवाद फेंकता है।नेटवर्क ड्राइव पर फ़ाइल.क्रेट विधि के लिए टाइम-आउट कैसे सेट करें?

क्या कोई तरीका है कि हम File.Create के लिए टाइम-आउट सेट कर सकते हैं?

+1

यह लगभग हमेशा एक गलती है। आप तेजी से विफल होने के लिए अपने कोड को अनुकूलित कर रहे हैं, यह उपयोगकर्ता को नौकरी पाने में मदद नहीं करता है। इससे भी बदतर, आप एक नया विफलता मोड जोड़ रहे हैं: लंबे समय तक इंतजार नहीं कर रहे हैं। अब यह आपकी समस्या है, लैन प्रशासक नहीं। –

उत्तर

2

कुछ ऐसे ही समय समाप्ति मैन्युअल लागू करने के लिए इस्तेमाल किया जा सकता:

var fileCreatingThread = new Thread(...); 
fileCreatingThread.Start(); 
if (fileCreatingThread.Join(TimeSpan.FromSeconds(5)) { /* Worked correctly */} 
else 
{ 
    // time-out 
} 
+1

1) यह किसी भी अपवाद का सामना नहीं करता है जो अन्य थ्रेड फेंक सकता है। 2) धागे को मारना अच्छा नहीं है। – CodesInChaos

+0

@CodeInChaos, क्या आपका मतलब है कि इसके लिए अलग दृष्टिकोण है या मुझे अपवाद हैंडलिंग, लॉगिंग इत्यादि के साथ उत्पादन-तैयार कोड लिखना चाहिए? – Snowbear

+0

मैं इस कोड के साथ जारी किए गए संकेतों को इंगित कर रहा था ताकि ओपी उनका उत्पादन कोड बनाते समय उनका ख्याल रख सके। और मैं धागे को मार नहीं दूँगा। मैं इसे अभी चलाना छोड़ दूंगा और इसे नौकरी के साथ पूरा होने के बाद स्वाभाविक रूप से मर जाऊंगा। मारना किसी भी तरह से काम नहीं करेगा क्योंकि 'थ्रेड.एबॉर्ट' अप्रबंधित कोड को बाधित नहीं कर सकता है। और हत्या की कोई भी मजबूत विधि आपकी प्रक्रिया की स्थिति को अपरिभाषित करती है। – CodesInChaos

0

मैं File.Create के लिए नेटवर्क का समय समाप्त कॉन्फ़िगर करने के लिए() किसी भी तरह की जानकारी नहीं है। ऐसा लगता है कि यह ढांचे में बनाया गया है या ऑपरेटिंग सिस्टम की अधिक संभावना है।

क्या आप फ़ाइल बनाने से पहले नेटवर्क कनेक्शन स्थापित करने का प्रयास कर सकते हैं? शायद लक्ष्य पिंग या सॉकेट खोलें? अगर यह विफल हो जाता है, तो आप फ़ाइल बनाने की कोशिश न करें। यदि यह सफल होता है, तो एक अच्छा मौका है जब फ़ाइल निर्माण तब तक जारी रहेगा जब तक कोई सुरक्षा समस्या न हो।

संबंधित मुद्दे