タグ

asyncに関するtake-yuのブックマーク (14)

  • UniRx.Async機能紹介

    UniTaskとは UniTaskとはUnity向けに最適化されたTask実装を提供するライブラリです。 もとはUniRxに組み込まれていましたが途中で分離し、独立した1つのライブラリとして提供されるようになりました。 もっと詳しい資料 UniTask入門 導入 C# 7系の機能に依存しているため、UniTaskを利用する場合はUnity 2018.3以降を推奨します。 導入はGitHubからパッケージをダウンロードし、Unityに取り込むだけでOKです。 UniTask UniTaskの機能紹介 Taskより軽量な「UniTask」 UniTaskでは、非同期処理をUniTaskというクラスで扱えるようにしています。 これはTaskをUnityに最適化する形で実装された非同期処理機構です。 (中身はValueTaskに近いです) Taskの実装を見てもらうとわかると思うのですが、Task

    UniRx.Async機能紹介
  • 【C#】マルチスレッドプログラミングとは?メリット・デメリットを比較して効果を検証する - LIGHT11

    マルチスレッドプログラミングの概要と、そのメリット・デメリットについて簡単にまとめます。 マルチスレッドプログラミングとは? 効果1 処理時間が短縮される 効果2 画面のフリーズを防ぐ マルチスレッドで処理してみる 効果があるのはあくまでCPUの処理 参考 関連 Unity2018.3.9 (C#の記事ですがUnityを使って動作確認しています) マルチスレッドプログラミングとは? まずマルチスレッドでないプログラムでは、1つのCPUコアで処理を先頭から順番に行っていきます。 CPUコアを一つしか持たないシングルコアのCPUではもちろん、 マルチコアのCPUにであっても一つのCPUだけを使って処理を行います。並列では行いません。 ここでマルチスレッドのプログラムを書くと、マルチコアCPUではスレッド毎に別のCPUコアで別の処理を行います。 シングルコアのCPUでは、一つのCPUコアで処理を

    【C#】マルチスレッドプログラミングとは?メリット・デメリットを比較して効果を検証する - LIGHT11
  • await って言う単語

    C# 5.0で非同期メソッドが導入されてから、 正式リリースを基準にしても5年以上、 最初の発表からだと7年以上経っています。 で、5年経っても、「なんて読むの」「asyncのaとawaitのaは違う」などなどが「定番ネタ」として定期的に出てくるわけですが。 特に、ECMAScript 2017がasync/awaitを導入したり、 Unity 2017がやっとC#のバージョンを6.0に上げれる感じになってきたり、 5年の断絶を経て去年からasync/awaitに触れる人が増えているようです。 5年も離れたら、世代断絶も起こりますよね… そりゃ、「定番ネタ」が改めて増えもしますよね… ということで、5年くらい前に同じようなことをどこかで書いてるはずなんですけど、改めて。 英単語 えいしんく まず読み方。 async: エイシンク await : アウェイト ってやつ。async の方が「ア

    await って言う単語
  • 【UniTask】UniTaskCompletionSourceを使って好きなタイミングで結果を確定させるUniTaskを生成する(ついでにUniTask.Voidの紹介) - はなちるのマイノート

    はじめに 今回はUniTaskCompletionSourceについて紹介したいと思います。 github.com UniTaskCompletionSourceを使うことで好きなタイミングで結果を確定させるUniTaskを生成することができます。 早速見ていきましょう。 はじめに UniTaskCompletionSource UniTask.Void UniTaskCompletionSource UniTaskCompletionSourceの使い方new UniTaskCompletionSource()からTrySetResult(), TrySetCanceled(), TrySetException()が呼ばれるまで待つUniTaskをUniTaskCompletionSource.Taskから生成することができます。 public UniTask Task { [Debug

    【UniTask】UniTaskCompletionSourceを使って好きなタイミングで結果を確定させるUniTaskを生成する(ついでにUniTask.Voidの紹介) - はなちるのマイノート
    take-yu
    take-yu 2022/06/07
    “UniTaskCompletionSource”
  • 【Unity】UniTaskを初めて触ってみる - はなちるのマイノート

    はじめに 最近UniTaskという単語を耳にしますが、Taskを使えばいいし学習コストも高そうなのでずっと手を出していませんでした。 ただUniTaskにはWebGLのようなマルチスレッドができない場合にはシングルスレッドにしてくれる機能があるらしいです。 実は以前既存のパソコンのゲームをWebGLに移植してほしいとお願いされ、めちゃくちゃ苦労した覚えがあります。(もはや断念しましたが・・・) 加えて以下の記事はUniRX,UniTaskの作者さんのブログの記事なのですが、結構面白いことが書かれていました。 neue.cc Rx vs Coroutine vs async/await もう結論が出ていて、async/await一でOK、です。まずRxには複数の側面があって、代表的にはイベントと非同期。そのうち非同期はasync/awaitのほうがハンドリングが用意です。そしてコルーチンに

    【Unity】UniTaskを初めて触ってみる - はなちるのマイノート
  • 【Unity】非同期処理を簡単に記述できる「UniTask」の使い方をいくつか紹介 - コガネブログ

    はじめに 「UniTask」を Unity プロジェクトに導入することで 非同期処理を簡単に記述できるようになります この記事では「UniTask」の使い方をいくつか紹介していきます 目次 はじめに 目次 検証環境 導入方法 使用例 Resources.Load を非同期で待つ シーンの読み込みを非同期で待つ 指定したフレーム数待つ 指定した秒数待つ コルーチンを待つ 指定した条件が true になるまで待つ 指定した条件が false になるまで待つ 自作の非同期メソッドを待つ UnityWebRequest を待つ 進捗を取得する 3D の当たり判定を待つ 2D の当たり判定を待つ ボタンが押されるのを待つ Awake、Start、OnDestroy を待つ OnEnable、OnDisable を待つ AsyncLazy(非同期遅延初期化)を書く すべての非同期処理が終わるまで待つ

    【Unity】非同期処理を簡単に記述できる「UniTask」の使い方をいくつか紹介 - コガネブログ
  • さては非同期だなオメー!async/await完全に理解しよう | Unity Learning Materials

    Unity 2018.1から、今まで実験的機能として導入されていた .NET 4.xが安定版となり、C#プログラマーに待望されていたasync/awaitが安心して使えるようになりました。このセッションではasync/awaitの詳しい仕組みやUnityにおける動作、コルーチン/C# Job Systemとの使い分けについてお話します。 共演:安原 祐二(ユニティ・テクノロジーズ・ジャパン)

    さては非同期だなオメー!async/await完全に理解しよう | Unity Learning Materials
  • Unity C# 非同期、async/await、コルーチンを整理する - sh1’s diary

    async/await とは await をつけたコードはどのような内部動作になるか コルーチンと yield return Unity の非同期処理(≠マルチスレッド) 用語のややこしさ サンプル 参考 タイトルのとおり、「非同期」がキーワードです。たとえば、つぎのような問いを整理するための記事です: C# だと async/await の非同期とマルチスレッドとは何か違うのか? Unity だと async/await とコルーチンはどのように違うのか 個人的にこれらは動作の点でも難しいところがあると思っていて、古典的なデバッグであるステップ実行を使って、動作の流れを追いづらいのです。なので、内部動作を知っていると整理の役にたつと思います。 Unity には UniRx や UniTask といった便利な機能拡張がありますが、そのまえに非同期を整理しておこう、ということでもあります。

    Unity C# 非同期、async/await、コルーチンを整理する - sh1’s diary
  • python3 の async/awaitを理解する - Qiita

    TL;DR await coroutineとawait futureの違いが理解できたら公式ドキュメントを読もう。 はじめに python3.5から導入されたasync/awaitだが入門記事を読んでもいまいちピンとこない。結局のところ公式ドキュメントを読むのが一番なのだが、頭から読むには分量が多すぎる。 そこで公式ドキュメントを読む前にこれを抑えておけば勘所がつかめるというものを書いてみた。 yieldやyield fromについては知っていると理解が早いのだが、この記事ではそれらの知識は前提としないように書いた。 またasync/awaitはマルチスレッドと密接に関係していると思っている人もいるかもしれないが、pythonのasync/awaitは勝手にスレッドを生成したりは一切しない。この記事にあるコードも特に断りがない限りシングルスレッドで動作する。 async defはコルーチン

    python3 の async/awaitを理解する - Qiita
  • C# Taskの待ちかた集 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    C# Taskの待ちかた集 - Qiita
  • Xamarin.Forms の画面(Page)のライフサイクルイベントについて - Qiita

    画面のロード時(viewDidLoad/onCreate)に相当するのは、Xamarin.Forms では OnAppearing、逆にアンロード時は OnDisAppearing です(名称が viewDidAppear に似てるので、画面の表示時かと勘違いしてました)。 画面の表示/非表示時のイベントは、画面でなく Application クラスの OnResume, OnSleep で提供されます。 要注意なのは OnResume です。これ、画面が表示される 初回はイベントが発生しません。 一度、アプリを背面に退避し、再度前面に持ってきたときに初めて OnResume が呼び出されます。iOS や Android の viewDidAppear / OnResume と同じだと思ってつかうとハマります。 基的には、 OnAppearing でリソースの確保を、 OnDisAppe

    Xamarin.Forms の画面(Page)のライフサイクルイベントについて - Qiita
  • async/awaitと同時実行制御

    C# 5.0のasync/awaitを使うと、多くの場面ではシングル スレッド的な動作になるし、多くの場面ではlock不要(結果的に、デッドロックが起こりようなくなる)になったりします。 ただし、「多くの場面で」。「必ず」ではないのがはまりどころ。いくつかの場面では、同時実行制御が必要です(普通にマルチスレッドの平行実行になるので、同時に同じデータにアクセスされる可能性を考慮しないとバグります)。 前提知識 いくつか、C# 5.0世代の非同期処理についての前提知識は、以下のスライド(先月末の.NETラボでの発表)を参考にしてください。 5~12ページ: async/awaitの書き方 17~22ページ: スレッドとそのコスト 24~26ページ: スレッド プール 29~32ページ: I/O完了待ちと非同期API 36~40ページ: UIスレッドとディスパッチャー 41~45ページ: 同期コ

    async/awaitと同時実行制御
  • Taskを極めろ!async/await完全攻略 - Qiita

    この記事は、 Task.Runを書けばとりあえず非同期で動くのはわかる 時々なんかうまく動かなかったりするけどどうして動かないのかはよくわからない よくわからないまま書いてよくわからないまま動いてるけどこれで大丈夫なのかわからなくてこわい みたいな人を対象にしています。 Taskクラスとasync/await 皆さん、非同期してますか?当然してますね。同期処理が許されるのはC#2.0までだよねーじゃなくて、async/awaitはC# 5.0から導入された、Taskクラスと紐付いた言語構文の一つです。登場はもう数年前なはずなんですが、未だに新しい言語仕様な感じがしてフシギです。それでもさすがに今は馴染んでいて、どこにでも遠慮なく飛び出てくるようになっています。 Taskの難しさ Taskは、難しいです。 Taskがというよりは、非同期処理自体が持つ複雑さが根に存在するため、いくらシンプル

    Taskを極めろ!async/await完全攻略 - Qiita
  • 【Unity開発者向け】「SynchronizationContext」と「Taskのawait」 - Qiita

    はじめに Unity 2018から.NET 4.6がstableになり、async/awaitやTask使いこなせるようになっておく必要がでてきました。 今回はそれらの裏に隠れている、SynchronizationContextという機構とその使い方について紹介します。 なお、この記事はUnity2018.1bを基準に書いています。 SynchronizationContextとは何なのか SynchronizationContextとは、ざっくり説明すると「指定した処理を指定したスレッドで実行するために用いるオブジェクト」です。 非同期処理を実行する場合、あるスレッドから別スレッドに処理を移譲することになります。 このとき、「非同期処理が終わったときに元のスレッドに処理を戻す」という需要が発生します。 これを解決するのがSynchronizationContextというオブジェクトです。

    【Unity開発者向け】「SynchronizationContext」と「Taskのawait」 - Qiita
  • 1