////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    送信日： 2004/11/01(Mon) No.280
    配信数： 2036
    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                ２００４年１１月１日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはーまたお休み……
　ごめんなさいごめんなさいごめんなさい……。
　……来週も確約できないです（汗）。
[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/index.html


////////////////////////////////////////////////////////////////////
/*                        ちょお普通な日記                        */
http://www.kab-studio.biz/nikki2/index.html

2004/10/24 (Sun)
　９時半に目が覚める。先週の KAB-studio.h 配信し忘れた……。書類まと
めたりステップ数書いたりなんか微妙に散々。横浜でコミックス大量購入。
日本シリーズ、西武勝利！　ほとはーはお休み……。仕事辞めたい（爆）。
お金貯まったら就職活動しよう。転職の目標。

2004/10/25 (Mon)
　おしごとは VB での修正。 TO_DATE() 便利。中間派遣Ｂ社の人とお話。
替えのマシンとか。１１月中まで？　そして夢と方向。そして特需銘柄。

2004/10/26 (Tue)
　現プロジェクト、１週間延長……。まぁエンドが決まれば。おしごとが
大変なんじゃなくて……。引っ越し準備を木曜に。Machicianが心の支え。
そして Oracle と地震保険。

2004/10/27 (Wed)
　バグ取りバグ取り。 VB で exe 作り忘れる。手作業禁止！　明日は
午前休取って、午後は派遣先Ｃ社で引っ越しの準備。舞-HIME がいい感じ
かも。そして出張。

2004/10/28 (Thu)
　午前休。午後は派遣先Ｃ社でお引っ越しの準備。が、バックアップと
ハードディスクのクリーンですごい時間かかった……。舞-HIME 第４話がい
い感じ（爆）。疲れた……。そして株。

2004/10/29 (Fri)
　土日休出することになりそう……。駄目だホント。勉強してくれー。おし
ごとはバグ潰し。 public static 再び……。精神的にも肉体的にへろへろ
です……。

2004/10/30 (Sat)
　朝９時半から夜７時まで休出してバグ潰し。カミングアウト。秋葉原で
バルドフォースエグゼとか購入。疲れた……。そしてタクシーじゃなくて。
そして使い捨て。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第十一章　ファインダウト社　−７−

　一直線上に並ぶ通路。左右には各部屋のドアが並ぶ。
「ねぇ、あれ……」
　上から見下ろす監視カメラ。
「それぞれの部屋には付いてないから」
　恭子が安堵の息をつく。
「カードに書いてある番号の下３桁が自分の部屋です。全室個室、部屋の構
造は同じですから」
　少年が止まり、４人は番号を見て部屋に入る。
「へぇ……」
　中はホテルの一室のように綺麗で広い。一番奥には窓が付いていて、開け
ることはできないが外を一望できた。
「っていってもビルしか見えないし……」
「ここには皆さんのようなゲストの他に、左さんをはじめ多くのスタッフが
宿泊していますから、それ相応の設備は整えてあります」
「朝ごはんはバイキングかなにか！？」
「食事は１０階の社員食堂かコンビニで」
「あー……」
「ホントだね、同じだ」
　恭子が舞の部屋を見に来る。入れ違いに部屋を出て、少年に訊く。
「君やリシュネもこういうところにいるの？」
　リシュネの部屋を訊こうと思ったのだが。
「僕らＡＰは、メンテナンスのための専用ハンガーがあるから」
「ハンガー？」
「……服を掛けるハンガーじゃありません。まぁ、この部屋のようにくつろ
ぐためのパーソナルスペースはありますが、入室を許可してくれるかは……
あとで確認してみます」
　リシュネと左はいいと言うに決まってるけど。
「荷物を置いたら、来てください。左さんがお待ちしてます」
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
　！？
　シーバリウが、高士の手を掴む。
　あり得ない。
　読み切っていなければ、あり得ない動き、そして結果。
　高士とシーバリウの目が、合う。
　その目は――――――

Machician 第２話 好きとスキと 好評連載中！
[ Machician ]
http://d.hatena.ne.jp/kab_studio/20040823#1093276416
[ Machician＋設定 最新一覧 ]
http://d.hatena.ne.jp/kab_studio/searchdiary?word=*%5BMachician
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 14.13
イベントを使ってみる！

「というわけで、今回は実際にイベントを使ってみます」
『はーい』
「前回作った関数はこの７つ」

void Create()
void Open()
void Set()
void Wait()
void Reset()
void Pulse()
void Close()

「この７つのメソッドを、他の同期オブジェクトの時みたいに、次のふたつ
のプログラムで呼び出すようにしてください」

ProcessA
ProcessB
ProcessC

『イベントは３つで試すんだ』
「ひとつはイベントの作成と操作、残りふたつは待機、ってするから」
『なるほど』
「まず、 ProcessA でイベントを作ります」

ProcessA::Create()

「前回のプログラムでは、 CreateEvent() の第３引数に FALSE を渡してい
るので、この作ったばかりの時にはシグナルがオフになっています」
『シグナルオフ、ね』
「次に、ふたつのプロセスでこのイベントを待機します。まずは 
ProcessB と ProcessC で、今作ったイベントを取得します」

ProcessB::Open()
ProcessC::Open()

『これは他の同期オブジェクトと同じね』
「次にこのイベントを待機します」

ProcessB::Wait()
ProcessC::Wait()

『あ、両方とも〈待機開始〉で止まった』
「シグナルはオフの状態だから、この状態でイベントを監視すると待機しま
す」
『これも他の同期オブジェクトと同じね』
「さて、ここからが他の同期オブジェクトと違うところです。まず、 
ProcessB と ProcessC のアウトプットウィンドウが同時に見えるようにし
て」
『？』
「VC を並べるような感じで、縦に並べるのがいいかな」
『うん、並べたよ』
「次に、 ProcessA でイベントのシグナルをオンにします」

ProcessA::Set()

『あ！　ProcessB と ProcessC 、両方とも待機終了した！』
「イベントの特徴のひとつは、シグナルをオンにすると、監視対象すべてに
それが知らされるということです」
『ミューテックスとかセマフォだと、ひとつずつだったもんね』
「バトンって概念があったからね。イベントの場合は数を制限しないものっ
てこと」
『セマフォよりセマフォらしいというか……』
「これを図にするとこうなります」

ProcessA            ProcessB        ProcessC
イベント作成
（デフォルトで  →→イベント取得
　シグナルオフ）→→→→→→→→→→イベント取得
シグナルオフを←←←待機開始
を維持……←←←←←←←←←←←←←監視開始
シグナルオフ　　　　（待機中）
を維持……　　　　　　　　　　　　　（待機中）
Set() で→→→→→→待機終了
シグナルオン→→→→→→→→→→→→待機終了

『見にくい……』
「２行ずつ単位で見て」
『要するに、 Set() でイベントふたつとも待機終了する、って言いたいわ
けね』
「そういうこと。さて、イベントが他の同期オブジェクト違うもうひとつの
点が、シグナルの状態。イベントは、シグナルをオンにするとオンになりっ
ぱなしになります」
『なりっぱなし？』
「そう。この状態で監視すると、シグナルがオンなのですぐに待機終了しま
す」

ProcessB::Wait()

『あ、すぐに待機終了ってなっちゃった』
「イベントのシグナルはオンになりっぱなしだから」
『他の同期オブジェクトは……』
「他の同期オブジェクトは、シグナルオンはひとつのプロセスにしか知らさ
れないから。他のプロセスや、そのあと監視を始めたプロセスからは
シグナルはオフのまま」
『そか、他の同期オブジェクトだと、他のプロセスから見たらシグナルオフ
のままなんだね……』
「対して、イベントはそういうの関係なくて、どのプロセスから見ても状態
は同じだから」
『イベントを見てみたらシグナルがオンになりっぱなしのまま、ってわけ
ね……』
「そこで、シグナルをオフにしてみます」

ProcessA::Reset()

「これで、シグナルがオフになります。この状態のイベントを監視します」

ProcessB::Wait()
ProcessC::Wait()

『あ、両方とも待機開始で止まった』
「イベントの今の状態はシグナルオフだから」
『監視すると待機しっぱなしになる……』
「これが今回の最初の状態と同じってこと」
『で、 ProcessA::Set() をするとシグナルがオンになって、両方とも待機
終了する、と』
「そういうこと。では最後に〈パルス〉を使ってみます」
『 PulseEvent() のことね』
「科学用語では、〈パルス〉っていうのは一瞬だけ高い波が起きること。
電気とか電波とかそういう分野の用語かな」
『几みたいな？』
「几というよりは人みたいな」
『おお』
「では実際に使ってみます。さっきの」

ProcessB::Wait()
ProcessC::Wait()

「の待機が続いてる状態で、」

ProcessA::Pulse()

「を呼ぶと」
『両方とも待機終了した！』
「イベントがシグナルオンになって、それが両プロセスに通知されます」
『これだけだと ProcessA::Set() と同じだね』
「そう。違うのは、シグナルがオンになったあと、すぐにシグナルオフにな
るという点。もう一度監視してみるとわかるよ」

ProcessB::Wait()
ProcessC::Wait()

『あ、両方とも待機開始だ！』
「つまり、イベントはシグナルオフの状態ってことです」
『パルスは、一瞬だけシグナルオンになって、すぐにシグナルオフにな
る……』
「これを図にするとこうなります」

ProcessA            ProcessB        ProcessC
シグナルオフを←←←待機開始
を維持……←←←←←←←←←←←←←監視開始
シグナルオフ　　　　（待機中）
を維持……　　　　　　　　　　　　　（待機中）
Pulse() で→→→→→→待機終了
シグナルオン→→→→→→→→→→→→待機終了
シグナルオフ
を維持……
シグナルオフを←←←待機開始
を維持……←←←←←←←←←←←←←←監視開始
シグナルオフ　　　　（待機中）
を維持……　　　　　　　　　　　　　（待機中）
...

『シグナルオンのあと、すぐにシグナルオフになるわけね』
「待機状態になっている同期オブジェクトを全リセット、でもそのあと監視
し始めた同期オブジェクトはそのまま待機させたい、っていう場合にいいか
な」
『というか……イベントってなんか使い道よくわからない』
「深く考えない方がいいかも。たとえば、 ProcessB と ProcessC で繰り返
し処理していたとします」
『 for とか while で？』
「それかタイマーを使って。そのループの開始時にイベントを監視するよう
にすると、 ProcessA でセット／リセットの切り替えでループの開始／停止
を切り替えられるんです」
『おお！　そういえばそうだ』
「ミューテックスやセマフォは〈バトン〉だから数が限られていたけど、
イベントは監視する数に制限はないから」
『そう考えるとわかりやすいね。なんか一番わかりやすい同期オブジェクト
かも』
「最初からそう言ってるし……」

/*
    Preview Next Story!
*/
「次回はスレッドを作ってみます」
『あれ？　同期オブジェクトって５つなかったっけ』
「うん、５つあるよ」
『なんでそれやんないの？』
「実は」
『あ！　もしかして！』
「というわけで次回」
＜ Version 14.14 スレッドを作ってみる ＞
『につづく！　って言わせてよ！』
「ボケるだけでしょ？」
『うん』


////////////////////////////////////////////////////////////////////
/*                ２００４年１１月８日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはーに１話追加したい
　三人合体ホットハーブに一話追加できたら微妙に奇跡。


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
http://www.mag2.com/m/0000012198.htm
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2004 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

