2008-10-28 15 views
7

मैं अपने एप्लिकेशन को बंद करने के लिए मजबूर करना चाहता हूं, और एक निकास कोड लौटा सकता हूं। एमएसडीएन पर एक नज़र डालने पर और मैं देख सकता हूं कि डब्ल्यूपीएफ में एप्लिकेशन में एक शटडाउन विधि है जो एक पैरामीटर के रूप में एक त्रुटि कोड लेती है, लेकिन System.Windows.Forms.Aplication के लिए एक प्रतीत नहीं होता है।फोर्स एप्लिकेशन को बंद करने के लिए (.net)

मैं एप्लिकेशन देख सकता हूं। एक्सिट() लेकिन एक त्रुटि कोड को वापस करने का कोई तरीका नहीं है।

क्या यह संभव है यदि कोई भी हाथ से जानता है?

धन्यवाद

उत्तर

13

आप System.Environment.Exit (yourExitCode) का उपयोग कर सकते हैं।

+0

पर्यावरण का उपयोग करने का कोई कारण। आवेदन पर निष्पादित करें। त्रुटि कोड के अलावा अतिरिक्त करें? – Sekhat

+1

आवेदन। Winforms ऐप्स, environment.exit() में एक्स्टिट की आवश्यकताएं गैर-जीयूआई प्रोग्राम में उपयोग की जा सकती हैं। –

2

सिस्टम में ExitCode प्रॉपर्टी सेट करें। पर्यावरण वर्ग और बाहर निकलने पर। जैसे

System.Environment.ExitCode = 1 
Application.Exit() 
2

अपने प्रपत्र वर्ग के लिए एक ExitCode संपत्ति (या कुछ इसी तरह) जोड़ें:

class MyForm : Form { 
    public int ExitCode { get; set; } 

    void ShutDownWithError(int code) { 
    ExitCode = code; 
    Close(); 
    } 
} 

अपने कोड में कहीं न कहीं आपके पास:

static void Main() { 
    // ... 
    MyForm form = new MyForm(); 
    Application.Run(myForm); 
} 

बदलें कि में:

static void Main() { 
    // ... 
    MyForm myForm = new MyForm(); 
    Application.Run(myForm); 
    Environment.Exit(myForm.ExitCode); 
} 

जब शट डाउनविथ आपके फॉर्म पर रॉर विधि कहा जाता है, आप मुख्य रूप बंद कर देंगे। यह एप्लिकेशन के साथ शुरू लूप से बाहर निकल जाएगा। रुन। फिर आप निकास कोड प्राप्त करते हैं और पर्यावरण के साथ प्रक्रिया को मार देते हैं। एक्सिट।

+0

धन्यवाद, मुझे लगता है कि हमारा मामला थोड़ा और जटिल है क्योंकि हमें वैश्विक अपवाद हैंडलर में बंद करने की आवश्यकता है। लेकिन सिद्धांत वही है, मुझे लगता है। – Duncan

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