# Awaitable クラスを使用した非同期プログラミング

> Asynchronous programming in Unity with the .NET async and await keywords and Unity's own custom Awaitable class.

非同期プログラミングを使用すると、コードでメインスレッドをブロックせずに長時間実行されるタスクを実行できます。これにより、非同期タスクの完了を待つ間も、アプリケーションが応答できるようにし、他のタスクを実行できます。

Unity は、.NET の [async](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/async) キーワードと [await](https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/await) 演算子を使用する、シンプルな非同期プログラミングモデルをサポートします。

Unity の非同期プログラミングについて読む前に、.NET の非同期プログラミングの基本要素を理解しておいてください。重要なコンテキストについては、[async と await を使った非同期プログラミング](https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/) と [タスク非同期プログラミングモデル](https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/task-asynchronous-programming-model) を参照してください。

| **トピック**                                                                                                              | **説明**                                                                  |
| --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [Awaitable の概要](/engine/6000.0/manual/scripting/optimization/async-await-support/async-awaitable-introduction.md)     | Unity の `Awaitable` の主な機能と、.NET の `Task` とイテレーターベースのコルーチンとの比較について説明します。 |
| [Awaitable の完了と継続](/engine/6000.0/manual/scripting/optimization/async-await-support/async-awaitable-continuations.md) | 待機対象タスクの完了時に非同期コードが再開される仕組みと、それがアプリケーションの機能とパフォーマンスに与える影響について理解します。     |
| [Awaitable のコード例リファレンス](/engine/6000.0/manual/scripting/optimization/async-await-support/async-awaitable-examples.md) | `Awaitable` のコード例を参照して、非同期プログラミングの一般的な問題を解決します。                         |

## 追加リソース##additional-resources

* [Awaitable API リファレンス](/engine/6000.0/script-reference/unity-engine/awaitable.md)
* [C# Job System](/engine/6000.0/manual/scripting/optimization/job-system.md)
* [coroutines](/engine/6000.0/manual/scripting/object-oriented-development/coroutines.md)
