2013-05-03 20 views
7

मेरे पास एक ऐसा एप्लिकेशन है जो फाइल अपलोड करेगा। मैं नहीं चाहता कि मेरा आवेदन फ़ाइल अपलोड के दौरान रुक जाए, इसलिए मैं कार्य को असंकालिक रूप से करना चाहता हूं। मेरे पास ऐसा कुछ है:क्या एसिंक विधि कॉल का इंतजार नहीं करना ठीक है?

class Program 
{ 
    static void Main(string[] args) 
    { 
     //less than 5 seconds 
     PrepareUpload(); 
    } 

    private static async Task PrepareUpload() 
    { 
     //processing 

     await Upload(); 

     //processing 
    } 

    private static Task Upload() 
    { 
     var task = Task.Factory.StartNew(() => System.Threading.Thread.Sleep(5000)); 

     return task; 
    } 
} 

अपवादों का आंतरिक रूप से इलाज किया जा रहा है, इसलिए यह कोई समस्या नहीं है।

क्या एसिंक/दूर शूट की तरह उपयोग करना ठीक है और इस तरह भूल जाओ?

+0

हां। अगर आपको प्रतीक्षा करने की ज़रूरत नहीं है, तो प्रतीक्षा न करें। – SimpleVar

+0

क्या यह एक बुरा अभ्यास नहीं है? –

+1

यह एक अभ्यास माना जाने वाला बहुत बुनियादी है। यह एक ऐसा ऑपरेशन है जिसे आप विशिष्ट संदर्भ में अपनी आवश्यकता के आधार पर उपयोग कर सकते हैं या नहीं भी कर सकते हैं। – SimpleVar

उत्तर

9

एक कंसोल ऐप में, को की प्रतीक्षा करने की आवश्यकता है। अन्यथा, आपका आवेदन प्रगति पर आने वाले सभी पृष्ठभूमि धागे और एसिंक्रोनस ऑपरेशंस को समाप्त कर देगा।

+0

यह तर्क का एक उदाहरण है, वास्तविक कोड एक फॉर्म एप्लीकेशन है और अपलोड के बाद खत्म नहीं होता है। –

+0

उस स्थिति में आग लगाना ठीक है, अगर आप * निश्चित * हैं तो आप चाहते हैं। आईएमओ, यह 'इंतजार करना' जितना आसान है। –

+0

लेकिन इसका इंतजार तब तक होगा जब तक कि अपलोड नहीं किया जाता है, नहीं? –

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