使えるようになり非同期処理がスッキリ書けそうなので興味あるのですが、マルチスレッドとの関連が不明だったので色々試してみました。実行環境Unity2018.3.4f1Taskのasync/awaitまずはシンプルなasync/awaitのサンプル。TestAsyncで3秒待っています。TestAsync");}}結果はこんな感じですべて同じスレッドで実行されます。async/awaitってただ書くだけでは非同期処理の待ち合わせはされるが、マルチスレッドにはならないということですかね。UniTaskのasync/awaitUniTask(UniRx.Async)でも同様になります。TestAsync2");}}結果、すべて同じスレッドで実行されています。TestAsync");}}このように書いて実行すると以下のように、Task.Runに渡したActionは別スレッドで実行されます。ゲームのUI処理やロジック処理でマルチスレッドを使う機会はほとんどないのでこれ以上は追わないことにします。UniTaskの作者のこの意見には私も同意です。UniTaskはどちらかというとJavaScript的(シングルスレッドのための非同期の入れ物)に近いです。Taskは、そうした非同期の入れ物に加えてマルチスレッドのためなどなど、とにかく色々なものが詰まりすぎていて、あまりよろしくはない。非同期とマルチスレッドは違います。JobSystemを使ったほうが良いので、カジュアルな用途以外(まぁラクですからね)ではマルチスレッドとしてのTaskの出番は少なくなるでしょう。»プロフィール趣味でiOS/Android向けのゲームを個人制作しています。(1)月別アーカイブはてなブログをはじめよう!ninagreenさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。