●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

処理を止めずに進める「非同期処理(async / await)」とは?

C#では、時間のかかる処理(ファイル・Web・データベースなど)
待たずに他の作業を進めることができる非同期処理が用意されています。
それを簡単に書くための仕組みが async / await です。

なぜ非同期処理が必要?

  • 時間のかかる処理でアプリがフリーズしないようにするため
  • 他の処理と並行して動作させるため
  • ユーザーに快適な操作感を提供するため

基本構文

async Task メソッド名() {
    await 時間のかかる処理;
}
    

例:3秒待ってからメッセージを表示する非同期メソッド

public async Task ShowAfterDelay() {
    await Task.Delay(3000);  // 3秒待つ(非同期で)
    Console.WriteLine("3秒後に表示されました!");
}
    

呼び出し側の書き方(Mainなど)

await ShowAfterDelay();  // asyncメソッド内から呼び出す
    

※ Main メソッドも非同期にできます(C# 7.1 以降)

static async Task Main(string[] args) {
    await ShowAfterDelay();
}
    

戻り値のある非同期メソッド

public async Task<int> GetNumberAsync() {
    await Task.Delay(1000);
    return 42;
}
    
int result = await GetNumberAsync();
Console.WriteLine(result);  // → 42
    

非同期処理でよく使うメソッド

  • Task.Delay():指定時間だけ待機
  • HttpClient.GetAsync():Webアクセス
  • File.ReadAllTextAsync():ファイル読み取り
  • await Task.Run(() => ...):重い処理の非同期化

注意点

  • await を使うにはメソッドに async が必要
  • 非同期メソッドは Task または Task<T> を返す
  • UIアプリでは await を使ってUIスレッドをブロックしないように注意

まとめ

非同期処理(async / await)は、重い処理を効率的に行いながら、アプリ全体をスムーズに動かすための仕組みです。
async を使ってメソッドを非同期化し、await で「待ち」を制御することで、直感的かつ安全な並行処理が実現できます。
初心者でもまずは Task.Delay() から練習してみましょう!