サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
uchukamen.com
タスク並列ライブラリ(Task Parallel Library)の略。.NET Framework Version 4 の System.Threading 名前空間および System.Threading.Tasks 名前空間のAPI のセット。 タスク並列ライブラリ~データの並列処理: Parallel.ForEach 複数のデータに対して、次のようにforeach で処理を行うことができます。これは、シーケンシャル(順次処理)となります。 foreach (var item in sourceCollection) { Process(item); } この時 Process(item) が item に対して完全に独立している場合、Parallel.Foreach により、並列処理が可能になります。 Parallel.ForEach(sourceCollection, item
C# + Native C による高速化~その1:基礎知識と準備 最近は、プロセッサのクロック自体が高速になっており、通常のアプリケーションであれば、性能について特に気にする必要もなくなりつつあります。しかし、画像や音声やビデオのような大量のデータや、複雑な算術計算を実施する場合は、どうしてももっと高速に処理したいという場合が出てきます。 一方で、ハードウェアの性能向上により、4 Core, 8 Thread などのマルチコアプロセッサがコンシューマ向けに安価に発売されており、いわゆるメニーコアの環境が整いつつあります。また、Intel Sandy Bridge 世代以降では、Intel Advanced Vector Extensions (AVX)が追加されました。これにより、SSEに加え、256bit命令拡張が行われ、ますますハードウェアの性能が向上しています。 このような並列化、メ
C# Parallel.For + Native C による高速化~その3:並列画像処理 準備ができたところで、C# と C# + Native Cでの画像処理でどのぐらい差が出るのか試してみます。 対象は、1つの画像に対して、ラプラシアンフィルターを適用するという、簡単な画像処理です。ラプラシアンフィルタとは空間2次微分を計算し、輪郭を検出するフィルタです。 ここでは、次のような 3x3 の8近傍フィルターを使います。 画像の取得と表示部分 画像の取得と表示部分は、C# の得意とする部分なので、特に困ることはないと思います。 WPFで、次のような画面をデザインします。 <Window x:Class="WritableBitmap.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x
WinRing0 開発環境: Visual Studio 2008 1.目的 暑くなってきましたね~ 現在使用しているメインPCが悲惨なことになっています。というのは、今のプロセッサは、Pentium 4 D なので、発熱がすごいです。このため、気温が高くなる5月~10月ぐらいは、CPUの負荷が高くなると、キーボード、マウスがフリーズする事故頻発 フリーズ→強制再起動→OSクラッシュ→復旧再インストールせざるを得なくなることも2度ほどありました。一応 対策として筐体内に、ファンを1つ追加しましたが、効果はほとんどありませんでした。 温度モニターで監視 CPU メーターで監視しながら、だましだまし使っていますが、夏場はそれでもだめで、筐体外超強力大型ファン設置で、とりあえずしのいでいます。w そんなわけで、プロセッサの温度を取得する方法を調べていたら、WinRing0というものに出会いました
WPF スクリーンセーバー 開発環境 Visual Studio 2010/.Net Framework 4.0 1.目的 WPFによるスクリーンセーバーの作り方です。 2.参考書 いいのがないですね・・・ 3.作り方 スクリーンセーバーは、昔ながらの Windows のスクリーンセーバーの呼出し手順が使われています。このため、WPFのアプリケーションをそのままスクリーンセーバーにするには、少し修正が必要です。 ここでは、基本的な枠組みだけを作る手順を説明します。 3.1 WPF 新規プロジェクトを作成 Visual Studio 2010 を立ち上げ、WPF アプリケーションの ~WpfScreensaver1~新しいプロジェクトという名前で作成します。 3.2 作り方 Windows のスクリーンセーバーは、コントロールパネルから次のように変更することができます。この時、スクリーンセー
Vistaの高速化 Windows Vista にあまり詳しくない人向けの高速化のヒントです。 いろいろな高速化を解説したホームページがあり、中にはレジストリを操作をしたり、クロックアップするようなマニアックな解説がありますが、一般人にはお勧めしません。 というのは、どうして遅いのか?ということを分析しないで、そのようなマニアックなことをしても、使い方やシステムが違えば効果が出ない可能性があります。また、レジストリの操作は、一つ間違えるとシステムが起動しなくなる可能性があり、危険です。 まずは、なぜ遅いのかを調査・分析して、安全・確実な方法で高速化をするべきです。ここでは、静的な性能調査→動的な性能調査(CPU→メモリ→ディスク→グラフィックス→ネットワークの順番)で高速化を検討していきます。 それから、先日PCが遅い遅いと騒いでいる人がいて、ちょっとみてあげたら、うらでウィルス対策ソフト
環境変数 開発環境: Visual Studio 2003 1.目次 目次 目的 参考書 環境変数を扱う4つの方法 System.Environmentを使用する方法 レジストリを使用する方法 Platform SDK を使用する方法 WMI を使用する方法 改訂履歴 テスト用ソースコード 2.目的 .NET-C# eGroup で話題になったので、ちょっとまとめてみました。 環境変数を扱う方法には、4つあります。それぞれのメリット・デメリットを説明します。 3.参考書 MSDN System.Environment MSDN SetEnvironment Platform SDK MSDN WMI/Win32_Environment C# プログラミング: InterOp C# プログラミング: WMI 4.環境変数を扱う4つの方法環境変数を扱う4つの方法は次のとおりです。 用途に応じて
ASP.NET 2.0 のコントロール Button, LinkedButton, ImageButton, HyperLink 開発環境: Visual Studio 2005 1.目次 1.目次 2.目的 3.参考書 4.ASP.NET 2.0 のコントロール 4.1 ASP.NET 2.0 のコントロール 4.2 OnClientClick 4.3 Attributes の使用方法 4.4 HyperLink コントロール 4.5 ボタンコントロール 4.6 リンクボタンコントロール 4.7 ASP.NETを使う上での注意 4.8 JavaScriptを書く場合の注意 2.目的 ちょっとしたページをASP.NETで作ろうと思ったところ、思いっきりはまりました。忘れないようにメモっておきます。 3.参考書 MSDN: [HOWTO] ASP.NET で Visual Basic .NE
Platform SDK から、SNMPで情報を取得する方法です。 SNMP とは、Simple Network Management Protocol の略で、ルータなどのネットワークデバイスの状態を取得するプロトコルです。 最初は、プラットフォームSDKの動作を確認するぐらいでやめるつもりだったのだけれど、いろいろうまくいかないで、次々に手を入れることになってしまいました 。とても厄介です。 と、四苦八苦していたところ、河端さんからの情報で、WMI から SNMP をアクセスできるそうです。試してませんが、マネージドコードで処理できるので、WMI→SNMP のほうがずっと楽にできると思います。プラットフォームSDK経由の SNMP ではなくて、WMI 経由のSNMP にしたほうがいいと思います。 ともあれ、Platform SDK のSNMPアクセスや、非同期コールなどせっかく調べたの
C# プログラミング入門。初心者のための簡単な Winfows Forms, ASP.NET, Windows Mobile などのアプリケーションの作り方、ヒントなどを載せています。また、Visual Studio, SQL Server, Virtual Server, Virtual PC, Vista などの開発に必要な環境も解説。
C# RegEx 正規表現 開発環境: Visual Studio 2003-2010 1.目次 1.目次 2.目的 3.参考書 4.超簡易正規表現作成支援ツール 5.よく使う正規表現の例 6.よく使う正規表現 5.RegEx デザインパターン 7.ダウンロード 8.ソースコード 2.目的 たま~~に、正規表現が必要になることがあるんですけど、たまにしか使わないからすぐ忘れちゃうんですよね。 今回もたまたま正規表現が必要になる場面があったんですが、使おうと思ってもヘルプの場所を探すのでひと苦労。 それに正規表現が正しいかどうかプログラム内で確認しようとすると、これがまたやっかい! いいかげんいやになって、超簡易正規表現作成支援ツールを作りました。 Web からの正規表現テストツール 3.参考書 (1) MSDN 正規表現言語要素 (2) MSDN RegEx (3) C#プログラミング バ
開発環境: Visual Studio 2003 次のような機能のアプリケーションを作る。 ・タスクトレイにアイコンを表示する。 ・タスクトレイのアイコンを右クリックすると、メニューが表示される。 ・メニューは、Menu1(ダイアログを表示), Exit(終了)。 作り方 1. Windows Forms の新規プロジェクトを TaskTray(任意) という名前で作る。 2. ツールボックスより、NotifyIcon コントロールを貼り付ける。 3. ツールボックスより、ContextMenu コントロールを貼り付ける。 4. ソリューション エクスプローラーより、TaskTray を選択し、 マウス右ボタン→追加→新しい項目の追加を選択する。 すると、次のようなダイアログが表示されるので、アイコン ファイルを選択して開くボタンを押す。 5. アイコンエディタで適当な絵を書く。 6. 2
?? 演算子 ?? 演算子は、左側のオペランドが null 値でない場合にはこのオペランドを返し、null 値である場合には右側のオペランドを返します。 例1 nullableInteger = null; Console.WriteLine((nullableInteger ?? -9999).ToString()); これは -9999を返す。 ?? 演算子は、参照型にも適用可能です。 string str = "Hello World"; Console.WriteLine((str ?? "null だよ").ToString()); str = null; Console.WriteLine((str ?? "null だよ").ToString()); これは、"nullだよ" と出力します。 名前空間のエイリアス修飾子 ( ::演算子 ) 基本的には、Systemで始まるよう
たとえば、User32.dll の MessageBox 関数を指定する場合、 [DllImport("user32.dll", EntryPoint="MessageBox")] public static extern int MsgBox(int hWnd, String text, String caption, uint type); このときの DllImport のパラメータは次のとおり。 フィールド デフォルト値 説明
Win32 API のアンマネージドDLLを使って、ini ファイルからエントリーのリードライトを説明します。 C# 掲示板の"ほげ"さんのコードをベースにまとめさせていただきました。"ほげ"さんに感謝! このページのアクセスが非常に高いので、ちょっと心配なので書いておきます。.NETでは、iniファイルは推奨していません。 iniファイルを使わない方法としては、レジストリ、\Documents and Settings以下の設定ファイル、app.configが候補に挙がってきますが、どのような用途なのかによって、選択が変わってきます。 設定情報の扱いにまとめたので、まずはそちらを読んでください。それでもどうしてもiniファイルを使わなければならない場合、以下に進んでください。
PowerShell 開発環境: PowerShell V1.0 PowerShell とは PowerShell とは、システム管理に役立つように設計されたスクリプト言語です。Windows Server 2008からは、標準で搭載されるようです。基本的には、.Net Framework をベースとしたスクリプト言語であり、Unix のShell のようなコマンドラインベースでのスクリプトが書ける。また、パイプで出力をつなぐこともできる。しかし、Unix のShell はテキストベースで扱われるのに対して、PowerShell オブジェクトでの受け渡しが可能となっている。このため、かなり柔軟なデータを扱うことができる様になっている。 個人的な感想としては、確かに Object をパイプで渡せて、.NET Framework も使える、Com も使える、スクリプトとしても実行できる、C#
インストーラの作成(ディプロイメント) 1.目次 目次 目的 参考書 インストールプロジェクトの追加 スタートメニューへのショートカットの作成 インストールのテスト リリース版の作成 2.目的 Windows.Forms のインストーラの作成についてまとめます。 .Net ベースのインストーラを作ったことが無かったので、実際に作ってみて、アイコンの設定や、流れを確認するのが目的です。 このため、以下の例での実行ファイルは1つの exe ファイルしかない、非常にシンプルなものにしてあります。 このような1つの exe ファイルにあえてインストーラをつける必要はありません。 3.参考書 VisualStudio.NET のヘルプ: チュートリアル : Windows アプリケーションの配置 MSDN 4.インストールプロジェクトの追加 まず、Windows.Forms アプリケーション De
Microsoft .NET Framework のガベージコレクション 開発環境: Visual Studio 2003 GotDotNetで、激論になりましたが、どうも自分でも納得できないところがありました。 というのは、明示的なDispose()、あるいはusingステートメントパターンが良いと言う意見がありますが、MSDNのサンプルの多くは、暗黙のGCで書かれているサンプルが多いですよね。 もし、MSがDispose(), usingステートメントをお勧めなら、MSDNのサンプルはDispose()パターン、あるいはusingステートメントパターンでかかれると思うんですよね。 それで、はたしてDispose(), usingステートメントを使うべきなのか、あるいはGCにおまかせパターンでよいのか、GDI+ の場合について検証してみました。 以下は、メモリ管理に関して、ある程度の知識
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Text; using System.Web.Mail; using System.Net.Sockets; using System.IO; namespace SendMail { /// /// Form1 の概要の説明です。 /// public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button buttonSend; private Sys
Virtual PC ~ なぜ使うのか? ASP.NETアプリケーションを開発したアプリケーションを サーバーにアップロードする前に、ステージングサーバーで正しく動作するかテストする必要があります。また、Windows Formsアプリケーションを配布しようとした場合、複数の種類のOSにインストールして正しく動作するかテストする必要があります。今まで、マルチブートにしたり、PCを複数用意したり、ハードディスクを取り換えたりと、大変な思いをしていたので、Virtual PC / Virtual Server でとても助かっています。 設定や使い方 間違えると、思うように動かなかったり、後でOSをら再インストールすることになるので、まとめておきました。 Vista Vista に対応した Virtual PC 2007 のベータ版((英語版のみ)でVistaを動かすことができます。 Vista
using System.Text.RegularExpressions; Regex regex = new System.Text.RegularExpressions.Regex("ここに正規表現"); if ( regex.IsMatch("テストする文字列")) マッチ! MatchCollection matchCol = regex.Matches(this.tbInput.Text); for(int i = 0; i < matchCol.Count; i++) { matchCol[i].Value); } using System.Text.RegularExpressions; Regex regex = new System.Text.RegularExpressions.Regex("ここに正規表現"); MatchCol
4.1 ページの遷移方法(NavigateUrl) Menu ナビゲーションでは、複数のメニュー項目を持つことができます。[Menu タスク] から、[メニュー項目の編集]を選択すると、次の [メニュー項目エディタ] から NavigateUrl を指定することができます。これにより、そのアイテムをクリックしたときに、ページを遷移してくれます。 生成されるコードは次のようになります。 <asp:Menu ID="Menu1" runat="server"> <Items> <asp:MenuItem NavigateUrl="~/Default.aspx" Text="新しい項目" Value="新しい項目"></asp:MenuItem> </Items> </asp:Menu> 同様に、TreeViewでは、[TreeView タスク]→[ノードの編集]→を選択すると、[TreeVie
/// /// 移動する /// private void go() { object url = this.comboBox1.Text; object flags = null; object targetFrame = null; object postData = null; object header = null; this.axWebBrowser1.Navigate2(ref url, ref flags, ref targetFrame, ref postData, ref header); } /// /// 中止 /// private void stop() { this.axWebBrowser1.Stop(); } /// /// 進む /// private void forward() { this.axWebBrowser1.GoForward(); }
リンクサーバーにより、簡単に Oracle や DB2, Excelなどにアクセスすることができるようになります。 リンクサーバーを設定するには、ストアドのsp_addlinkedserver を使用する方法と、Enterprise Managerから設定する方法があります。 Enterprise Managerからは、サーバ→セキュリティ→リンクサーバーで追加します。 sp_addlinkedserver 構文 sp_addlinkedserver [ @server = ] 'server' [ , [ @srvproduct = ] 'product_name' ] [ , [ @provider = ] 'provider_name' ] [ , [ @datasrc = ] 'data_source' ] [ , [ @location = ] 'location' ] [ ,
おまけに、拡張しているうちに、海釣りに行くことになり、夏なので紫外線も知りたいとか、台風5号が発生しそうなので衛星写真も全球、北半球を見たい、 津波があっても怖いので地震も知りたい、見れるものは何でも見たいと、ほとんどお天気フェチに走ってしまいました。w このため、結局当初の想定を大幅に超えて、以下の拡張を行いました。 種類、位置情報の保持 画像情報の拡大縮小 画像情報の保存 画像キャッシュの利用 さらに、以下の情報を表示できるようにしました。 天気予報 天気予報 天気予報(翌日)・・・追加 天気予報(翌々日)・・・追加 レーダー・降水ナウキャスト アメダス 降水量、気温、日照時間、風向・風速・積雪深 気象衛星 全球(赤外線、可視光、水蒸気)・・・追加 北半球(赤外線、可視光、水蒸気)・・・追加 日本(赤外線、可視光、水蒸気) 台風情報 警報→海上警報・・・追加 紫外線情報 予測: 今日・
次のページ
このページを最初にブックマークしてみませんか?
『Uchukamen C# Programming』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く