だーいぶ前の話だけど、「OS自作入門」という本を買った。
いつものごとく買ってパラっと見て本棚行きだったので、会社に持ってきて分解・電子化(笑)
で、ノートに入れとけばやるかな~っと^^;
さてさてどうなることやら。。。
2008/01/18
2007/12/31
BeginInvoke
C#でWiimoteLibいじってて、C#について気づいたことの備忘録。。。
下記のようなソースでWiimoteChanged()が別スレッドで実行されていた場合に、WiimoteChanged()の中でフォームオブジェクトにアクセスすると"別スレッドから実行された"とのエラー(警告)が出てしまう。
この場合にBeginInvokeで非同期(遅延?)呼び出しとやらを使ってあげると、BeginInvokeで指定した関数はメインスレッドで実行されるらしい。
たとえばメインスレッドで実行されるForm1()のスレッドIDが10で、WiimoteChanged()がスレッドID11で実行されたとする。
ここで、WiimoteChanged()からBeginInvoke()で実行されるUpdateWiimoteState()はスレッドID10で動くようだ。
ってことはソケットとかのイベントで別スレッドからデリゲート関数が実行された場合は、BeginInvoke()で実際の処理を呼び出してあげればいいのかな?
ただ、BeginInvoke()で調べてると、BeginInvoke()で呼び出す関数にはいろいろと制約があるらしいので、このあたりはもう少し調査する必要アリかな?
Invoke()だとかBeginInvoke()の話はここを見れば詳しく分かりそうですね。
private delegate void UpdateWiimoteStateDelegate(
WiimoteChangedEventArgs args );
private Wiimote wiimote = new Wiimote();
public Form1()
{
Debug.WriteLine( "Form1 Thread id : " +
Thread.CurrentThread.ManagedThreadId );
InitializeComponent();
wiimote.WiimoteChanged += new WiimoteChangedEventHandler(
WiimoteChanged );
}
private void UpdateWiimoteState( WiimoteChangedEventArgs args )
{
Debug.WriteLine( "UpdateWiimoteState Thread id : " +
Thread.CurrentThread.ManagedThreadId );
}
private void WiimoteChanged( object sender, WiimoteChangedEventArgs args )
{
Debug.WriteLine( "WiimoteChanged Thread id : " +
Thread.CurrentThread.ManagedThreadId );
BeginInvoke( new UpdateWiimoteStateDelegate( UpdateWiimoteState ),
args );
}
2007/12/30
WiiのコントローラでPCを操作
会社も今年の業務は終了しやっと時間が取れるようになったので、先日書いたとおりBluetoothでWiiコントローラと通信させてみました。
Wiiにコントローラを接続する要領で、PCのBluetoothアプリを接続待ち状態にしてWiiコントローラの1,2ボタンを同時に押すとあっさり接続が完了。
Wii入力ライブラリであるWiimoteLibを立ち上げて動作テスト。
このライブラリはWindowsのmanagedライブラリなのでC#やVB.NETで扱うことができるみたい。
お~~!!
繋がってる!!
ついでにWiiコントローラでPCを操作できるWiiRemoteも使ってみる。。。
おおぉぉ~~!!
WiiコントローラでPCがいじれる!!
これで準備は整ったので、自分でもアプリケーションを作ってみようかな。
VS2008も出たしC#の勉強がてらね。
ラベル: Visual Studio, Wii, プログラム
2007/12/28
trac+Subversion+TortoiseSVN
前々から使いたかったこのセットを今日の仕事の合間に入れてみました( ´∀`)
Trac自体はAll-in-one-tracであっという間に入るんだけど、問題はTortoiseSVNからのアクセス方法。。。
と言うかURL?
ぐぐっても意外と出てこないのね(;´Д`)
やっとこさ、見つけたのがココ☆
おかげさまで助かった( ´∀`)
結局アクセスURLは"http://
プロジェクト名は初期状態ではdefaultに設定されるようですね☆
やっとこさ環境が整ったので、以降の仕事はSubversion使おっと♪
あとはEclipseとの連接とかできたらいいな。。。
その前にEclipseでレゴ用のgcc動かせるようにしないと^^;
2007/12/27
2007/12/25
2007/12/21
Visual Studio 2008
先日MSDNにUPされたISOイメージが壊れてたみたいでインストールできなかったVS2008。。。
今日また除いてみると再UPされていたようなのでDL。
インストールしてみると。。。
お、できた^^
ただいまインストール中。。。
ラベル: Microsoft, Visual Studio, プログラム