情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

Control.BeginInvokeとControl.Invoke(System.Windows.Forms)メモ このエントリーを含むはてなブックマーク

GUIアプリを.NETで作成するとき、GUIを操作するのは常にメインスレッドであって、サブスレッドから操作してはいけないというのが鉄則なんですが、そのときに便利なBeginInvokeとInvoke。ちょっとmsdnライブラリで見てみたら、

BeginInvoke
コントロールの基になるハンドルが作成されたスレッド上で、指定したデリゲートを非同期的に実行します。

Invoke
コントロールの基になるウィンドウ ハンドルを所有するスレッド上で、デリゲートを実行します。

と、なっていました。msdnを見てちょっとスッキリ。

ちなみに、「作成」と「所有」になにか違いはあるのだろうかと思って、英語(en-us)で見てみると、

BeginInvoke
Executes a delegate asynchronously on the thread that the control's underlying handle was created on.

Invoke
Executes a delegate on the thread that owns the control's underlying window handle.

となっていて、やっぱりちょっと違います。とりあえず、同期と非同期の違いだと思っておけばいいんですかね。

それにしても、GUIをきれいに構成する方法が知りたい。複雑になると拡張性を無視したコードになっちゃう。うーん、まぁ、やってるうちに少しずつよくなればいいのかな。

スポンサーサイト
.NET | コメント:0 | トラックバック:0 | 編集

Microsoft公式「.NET Framework 開発ガイド」がWebで登場 このエントリーを含むはてなブックマーク

「.NET Framework 開発ガイド」が、Microsoftから公開されました。内容は、.NET Framework

「.NET Framework の仕組みを紹介した ".NET Framework 開発ガイド ブック" が Web で登場」
.NET Framework 開発ガイド ブックは .NET Framework の動作の仕組みを分かりやすく説明したコンテンツです。.NET Framework の心臓部である CLR (Common Language Runtime) を中心に、.NET Framework をしっかり理解するための情報が満載です。.NET Framework をより深く学びたい開発者にも、.NET Framework を初めて学ぶ人にもピッタリなコンテンツです。ぜひ、.NET Framework スペシャリストへの第一歩としてご活用ください。

というわけで、読んでみました。→「Microsoft .NET Framework 開発ガイドブック

Microsoft .NET Framework 開発ガイドブック

.NET Frameworkの仕組みや、構成、概要がよく分かります。目次は以下のようになっています。

  1. .NET Framework の概要
  2. アセンブリの仕組み
  3. .NET アセンブリのバージョン管理
  4. セキュリティ機構
  5. CLRの機能
  6. アプリケーションの実行までの流れ
  7. アプリケーションの配置
  8. Side-by-Side 実行

全体としては短いですが、ボリュームはたっぷりで、これを読むだけで、.NET Frameworkの知識が一気に手に入ります。図も多く、読みやすいです。

どの章も興味深いのですが、気になったところを抜粋して紹介します。

ildasm.exe

ILDASMは、MSIL Disassemblerの略であり、MSILとは、Microsoft Intermediate Languageのことです。つまり、ILDASM.exeは、MSIL(.NETでの中間言語)で記述されたファイル(.exe、.dll)の内容を読み取ることができるツールと言えます。

実際に、ildasm.exeを利用してみます。ildasm.exeの場所は、少し探すのが大変ですが、次のようなパスにありました。

C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe

ダブルクリックで簡単に実行可能です。

ダブルクリックで実行すると、ウィンドウが表示されるので、「ファイル」から、EXEファイルや、DLLファイル(もちろん、.NET Frameworkを利用したもの)を読み込んでみます。すると、ツリー構造が表示されます。

MANIFESTダブルクリックするとDLLもしくはEXEに埋め込まれたマニフェスト(ファイルに関する情報)を表示することができます。

また、「表示(V)>メタ情報(M)>表示!(S)」をクリックすることで、ファイルのメタ情報(どのような型が宣言されているかなど)が表示されます。表示する必要があるかは別として、ファイルにどのような情報が格納されているかが見られるというのは勉強になります。

はじめにファイルを開いたときに表示されたツリーをたどっていくことでもどのようなメソッドやクラスが定義されていて使用可能であるかが分かります。

ほかにもたくさんの機能がありますが、とくにおもしろいものとしては、「表示(V)>統計値(I)」から見られる統計情報です。ファイル自体の何パーセントがどのような要素から校正されていて、いくつのメソッドが宣言されているか、そのサイズはどれくらいかなどの詳細な情報をチェックできます。これまた、実用的な意味があるかは別にしても、とても興味深いです。

.NET | コメント:0 | トラックバック:0 | 編集

JPEG(Exif)など、画像メタデータ(タグ)に関する資料リンク集 このエントリーを含むはてなブックマーク

Exif,TIFF(JPEG)などのメタデータ(タグ)に関する資料をまとめてみました。 基本的には、仕様書を参考にしてください。 仕様書を見る前に、紹介ページを見ると、全体の把握に役立ちます。

C#/.NETにおける、BMP、GIF、EXIF、JPG、PNG、TIFF画像のメタデータを取得する方法については、 「C#(.NET)でJPEGファイルのExifを読み取る方法」をご覧ください。VBも.NETならC#と同様です

Exif | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。