タグ

非同期に関するled-centipedeのブックマーク (4)

  • 時間のかかる処理を実行すると、COM コンテキストの移行ができないエラーが発生する (WPFプログラミング)

    WPF アプリケーションで時間のかかる処理を実行すると、COM コンテキストの移行ができないエラーが発生する現象について紹介します。 現象 WPFアプリケーションで時間のかかる処理を実行すると、下記のエラーが発生することがあります。 マネージ デバッグ アシスタント 'ContextSwitchDeadlock' が 'C:\(事項ファイルのパス)\(実行ファイル名).vshost.exe' で問題を検出しました。 追加情報:CLR は、COM コンテキスト 0xnnnnnn から COM コンテキスト 0xnnnnnn へ 60 秒で移行できませんでした。ターゲット コンテキストおよびアパートメントを所有するスレッドが、ポンプしない待機を行っているか、Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、パフォーマンスを低下させたり、

    時間のかかる処理を実行すると、COM コンテキストの移行ができないエラーが発生する (WPFプログラミング)
  • 非同期理解のためにasync/awaitとTaskの基礎を学んだ話 - Qiita

    最初に どうも、ろっさむです。 引き続きUnity非同期を完全に理解するために今回はasync/awaitについて見ていこうと思います。 ちなみにこれが2018年最後の記事となります。お疲れ様でした。 Unity非同期完全に理解するための歩み: - 【Part0】タスクとスレッドとプロセスの違いを知って非同期完全理解に近付く - 【Part1】Unity非同期完全に理解するための第一歩~非同期処理とは何か~ - 【Part2】古来よりUnity非同期を実現していたコルーチンとは何者か? - 【Part3】非同期理解のためにasync/awaitとTaskの基礎を学んだ話 ←今ココ! async/await? C#5.0以降から追加された機能です。Unity2018以降ではC#6.0が使用できるため、このasync/awaitも使用することが可能です。 async/awaitはTaskクラス

    非同期理解のためにasync/awaitとTaskの基礎を学んだ話 - Qiita
  • 非同期プログラミングのシナリオ - C#

    I/O バインドのニーズ (ネットワークからのデータの要求、データベースへのアクセス、ファイル システムの読み書きなど) がある場合、非同期プログラミングを利用できます。 CPU バインドのコードにも、コストのかかる計算の実行など、非同期コードに適したシナリオがあります。 C# は言語レベルで非同期プログラミング モデルを備えており、コールバックに苦労したり、非同期処理をサポートするライブラリに従ったりしなくても、非同期コードを簡単に記述できます。 C# は、タスク ベースの非同期パターン (TAP) と呼ばれるものに従います。 非同期モデルの概要 非同期プログラミングの中心になるのは Task オブジェクトと Task<T> オブジェクトであり、非同期操作をモデル化します。 これらは、async および await キーワードによってサポートされています。 ほとんどの場合、モデルは非常に

  • 非同期処理(C# によるプログラミング入門)

    概要 注意: 2010年10月時点での CTP (community technology preview)版を元にした記事になっています。 製品版までに変更の可能性があります。 (async や await というキーワードも変更される可能性あり。) Ver. 5.0 スレッドを使った非同期処理を行いたい動機としては、以下の2つが挙げられます。 非ブロッキング処理: I/O 待ちとかで UI スレッドをフリーズさせないようにする 並列処理: マルチコアを活かした並列処理でパフォーマンス向上 このうち、並列処理に関しては、Parallel クラスや Parallel LINQ で簡単に対応可能 (ラムダ式や LINQ を使えば、並列じゃない場合とほとんど変わらず書けます。 参考: 「[雑記] スレッド プールとタスク」)。 一方の、非ブロッキング処理は、今までは結構面倒だったものの、 as

    非同期処理(C# によるプログラミング入門)
  • 1