読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

PPL/ConcRT

音声ファイルから動画ファイルを生成する(66) – 非同期エージェントによる描画

描画を別スレッドにする スワップチェインは周期的に全画面を書き換えるようなアプリ、つまりゲームには向いているが、元の画像から部分的に書き換えるようなというか、部分的な書き換えがランダムな間隔で発生するようなUI描画には向いていない。やはり描画…

Box2D + WinRTでゲームを作る (20) – タイマー遷移コードの改良

タイマー遷移コードの改良 ゲームオーバー表示を数秒表示してメニューに戻るコードは作成できたけれども、表示をキャンセルしてすぐメニューに戻るようにし、このタイマー遷移コード自体を使いまわしできるようにしてみた。 template <typename EventClass,int Resolution> task<void> create_timer_tas</void></typename>…

Box2D + WinRTでゲームを作る (19) – task.then()のスレッド実行コンテキスト

ゲームオーバー時の処理 ゲームオーバー状態に遷移してから3秒後にメニュー表示に戻るコードを考えていて、思いついたのが下記のコード。 struct GameOver : msmf::state<>{ template <class Event, class Fsm> void on_entry(Event const& ev, Fsm& ) { GameMain^ g = ev.getGameMai</class>…

軽量タスク

軽量タスク. 「軽量」に非常に惹かれる。OSのスレッドっぽい使い方なので、古いコードでスレッドを使ったものだと比較的簡単に置き換えることができるそうだ。要するにこれはUMSを使ったスレッドなのかな。

非同期エージェント ライブラリ

非同期エージェント ライブラリ. こんなライブラリもあったのか。。

同時実行ランタイム

同時実行ランタイムの日本語化がいつのまにか進んでいた。

threadをtaskに

音声再生処理をスレッドから非同期タスクに変更してみた。まあ内部的にはスレッドを使用してるんだろうけどコードの見た目わかりやすいので。サンプルコードを見ていてもうスレッドを生で使うようなことはしていない。とうとうスレッドも抽象化され隠ぺいさ…

イグトランスの頭の中(のかけら) » Metro styleアプリでのC++と非同期

イグトランスの頭の中(のかけら) » Metro styleアプリでのC++と非同期. 確かに非同期処理の受け取りはtask.thenで書かないと本当に面倒で冗長なコードになる。PPLについては他にも面白そうな機能があるんだけど、手を出せていないんだよね。。

Boost.Context 非同期処理を逐次的にする - Faith and Brave - C++で遊ぼう

継続が使えるようになることでうれしいのは、やはり非同期処理のコールバック地獄の解消です。 非同期処理は、処理が終わった時に呼ばれるコールバック関数を登録しますが、連続的な非同期処理をしようと思ったら非常に多くの関数を行ったり来たりして書かな…

Metro Style Appでの初期化処理

Metro Style Appではwaitなどのブロックは継続をパラメータとしたtask::then中以外では禁止となっているようだ。とすると常に非同期を意識して処理しなければならない。初期化処理も同様である。私の場合初期化処理は時間がかかってもまあいいだろうとか思っ…

Windows 7 の新機能 - ユーザーモードスケジューラー UMS; User Mode Scheduler - 岩田 雅樹 のブログ - Site Home - MSDN Blogs

Concurrency Runtime (ConcRT) が提供されますが、Concurrency Runtime では UMS を内部で使用する予定です。 Windows 7 の新機能 - ユーザーモードスケジューラー UMS; User Mode Scheduler - 岩田 雅樹 のブログ - Site Home - MSDN Blogs. なるほど、そう…

task Class (Concurrency Runtime)

task Class (Concurrency Runtime). task Classを少しじっくり読むことにする。どうもtaskとthreadのかかわりがまだもやもやしているので。ここを理解しないと先に進めない気がしている。

PPL や asyncを見ていて思ったこと

PPLやasyncを見ていて、threadはもう直接触れるものではなくなりつつあると感じた。threadは抽象化され隠ぺいされつつある。 もう1つ。PPLを調べているうちにUser-Mode Scheduling (UMS)というものを少し理解した。存在は知っていたが全然わかっていなかった…

std::async std::future Concurrency::task

標準ライブラリのstd::async・std::future、PPLのConcurrency::taskとかってなんか似ているよね。機能的にはPPLの方が優れていそうだけどね。

我々はプログラムに "速く待つこと" を教えなければならない

かつて Tony Hoare は、「我々はプログラムに "速く待つこと" を教えなければならない」というジョークを言いました。ただ現在でも、待つ必要のない非同期プログラミングを習得するのは難しく、その利点もすぐに明らかというわけではないので、開発者は避け…

STAではブロッキングしてはならない

非同期操作が作成したタスクを含め、PPL のあらゆるタスクで、get を呼び出すのが "構文的には" 適切です。ただし、結果が使用できるようになるまでは、get は呼び出し元のスレッドをブロックする必要があり、当然ながら「速くて滑らかに」という合言葉と矛…

PPLとConcurrency Runtime

「PPL を使用した C++ での非同期プログラミング」を 読んだ。 PPLとはマルチコア用の並列処理ライブラリかなと思っていたけれどそれにかぎらず非同期操作を簡潔に処理するという目的も併せ持っているのですな。 ポイントとなるのはtaskクラス。これは非同期…