.NETフレームワークのためのC#システムプログラミング
Visual Sutudio 2008対応
- 著者 北山洋幸
- 判型 B5変型、648頁
- 本体価格 5,800円
- ISBN 978-4-87783-192-9
本書について
Visual Studio 2005を経てVisual Studio 2008が登場した現在、.NET Frameworkプログラミングは定着した感があります。
.NET Frameworkは、単なるクラスの集合体ではなく、幅広い応用分野に適応できる完全な環境です。提供されるクラスライブラリを駆使すれば、ほとんどの要求を満足できることでしょう。そしてこの強力な.NET Frameworkを最大限に活用するには、C#は打ってつけの言語であるといえます。C++のプログラミング経験を有する方であれば、C#の利便性をすぐに理解できることでしょう。また、これまでVisual Basicを使用してきた方も、.NET Frameworkへ移行する機会にC#を試してみる価値はあると思います。Visual C++ 6.0とMFCを使用していたエンジニアのアップグレードパスと考えても、よい選択といえるでしょう。
本書は、C/C++などでAPIプログラミングや、スレッド、および同期など、システムプログラミングを行っている方々が、.NET FrameworkとC#へ移行する際の参考となることを目指して執筆しました。本書は、
・C#でシステムプログラミングを行いたい
・C#で比較的高度なプログラミングを行いたい
・C++とAPIで行っていたプログラミングを.NET Frameworkへ対応させたい
という方々を読者対象としており、ここに列挙した事項に必要な範囲でC#の機能を紹介しています。
本書は、既刊書の『Visual C++ .NETではじめるWin32 APIシステムプログラミング』のC#最新対応版という側面もあり、取り扱う題材も共通する部分があります。双方を比較すれば、プログラミングにおけるC++/Win32 APIとC#の差異を理解する一助にもなるでしょう。
目 次
- 第1章 C#の基本
- 1-1 データ型 1-2 値型とは 1-3 参照型とは 1-4 C#の型とAliasの関係
1-5 C#の型 1-6 文字列型 1-7 配列 1-8 構造体 1-9 引数 1-10 デリゲート
- 第2章 DLL
- 2-1 C#プログラムとDLLの連携 2-2 DLLのメソッド名を変更する
2-3 .DEFファイルを使用したエクスポート 2-4 DLLとC#の引数
2-5 DLLから情報を受け取る 2-6 文字列の受け渡し 2-7 構造体の受け渡し
2-8 コールバック関数を渡す 2-9 DLLを使用した応用例
2-10 スレッドからDLLを呼び出す 2-11 DLLでメモリを共有
2-12 DLLでメモリを共有(2)
- 第3章 スレッド
- 3-1 シンプルスレッド 3-2 スレッドに値を渡す 3-3 スレッドから情報を貰う
3-4 フォアグラウンドスレッドとバックグラウンドスレッド
3-5 シンプルなGUIを持ったマルチスレッドプログラム
3-6 シンプルなGUIスレッドプログラム(2) 3-7 InvokeでGUI更新
3-8 BackgroundWorkerを使う方法 3-9 永遠に線を描くプログラム
3-10 永遠に線を描くプログラム(正常版) 3-11 スレッドの中断と再開
3-12 スレッドの強制終了 3-13 スレッド間でメッセージ通信
3-14 スレッド間でメッセージ通信(2) 3-15 多数のスレッド
3-16 スレッドの優先順位 3-17 スレッドの中断 3-18 スレッドのキャンセル
3-19 BackgroundWorkerでキャンセルを行う方法
- 第4章 同期
- 4-1 Interlockedクラスで同期 4-2 Joinメソッドによる終了監視
4-3 Monitorクラスによる同期 4-4 lock文による同期 4-5 非同期呼び出し
4-6 同期呼び出し 4-7 BeginInvokeメソッド
4-8 EventHandlerデリゲートによる同期呼び出し 4-9 ManualResetEventと同期
4-10 AutoResetEventと同期 4-11 スレッドプール
4-12 コールバックでメソッド完了を知る 4-13 コールバックと多数の非同期呼び出し
4-14 volatileキーワード 4-15 ReaderWriterLockによるクラス同期
4-16 ミューテックス 4-17 ミューテックス(GUI版) 4-18 セマフォ(GUI版)
4-19 QueueクラスとMonitorクラスによる通信
- 第5章 コントロールのアクセス
- 5-1 親フォームから子フォームのコントロールをアクセス
5-2 子フォームから親フォームを直接呼び出す 5-3 子フォームから親にPaintイベントを送る
5-4 子フォームから親にPaintイベントを送る(2)
5-5 イベントハンドラで子フォームから親に通知
5-6 フォーム間のメッセージ通信によるコントロールアクセス
5-7 シンプルなスレッド間のコントロールアクセス
5-8 Invokeでスレッド間のコントロールアクセス
5-9 Invokeでスレッド間のコントロールアクセス(2)
5-10 スレッドをクラスに分離し、Invokeでコントロールアクセス
5-11 単純なスレッド間のコントロールアクセス
5-12 BackgroundWorkerを使ってスレッド間のコントロールアクセス
5-13 BackgroundWorkerを使ってスレッド間のコントロールアクセス(途中も表示)
5-14 BackgroundWorkerを使ってスレッド間のコントロールアクセス(途中も表示)(2)
5-15 BackgroundWorkerを使ってスレッド間のコントロールアクセス(2)
5-16 スレッドとQueueクラスでスレッド間のコントロールアクセス
5-17 スレッドとQueueクラスでスレッド間のコントロールアクセス(2)
5-18 CreateGraphicsを使ってコントロールアクセス
- 第6章 プロセス
- 6-1 プロセスの起動 6-2 プロセスを起動し同期で完了を待つ
6-3 プロセスを起動し非同期で完了を待つ
6-4 ミューテックスでインスタンスの多重起動を禁止
6-5 セマフォでプログラムの多重起動を禁止
6-6 プロセス名で多重起動を禁止 6-7 DLLによるプロセス制御
6-8 DLLによるプロセス間通信 6-9 標準I/Oを使用したプロセス間通信
6-10 ネットワークを使用したプロセス間通信
-