2013-05-03 12 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; 
    } 
} 

例外は内部的に扱われているので、問題はありません。

async/awayを撮影のように使用して、このように忘れても構いませんか?

+0

はい。あなたが待つ必要がないなら、待ってはいけません。 – SimpleVar

+0

それは悪い習慣ではありませんか? –

+1

これは習慣として考えるにはあまりにも基本的です。これは、特定の状況でのニーズに応じて、使用する場合と使用しない場合がある操作です。 – SimpleVar

答えて

9

コンソールアプリケーションでは、にはが必要です。そうしないと、アプリケーションは終了し、進行中のすべてのバックグラウンドスレッドと非同期操作が終了します。

+0

これはロジックの単なる例です。実際のコードはFormsアプリケーションであり、アップロード後に終了しません。 –

+0

その場合は、あなたがしたいと思っているなら、火をつけて忘れてもかまいません。 IMO、「待つ」のと同じくらい簡単です。 –

+0

しかし、アップロードが完了するまで、それを待っていますか? –

関連する問題