C#

C#_メディアプレイヤー ( デザインに配置 )

C# でメディアプレイヤーをつくりたい。再生・終了箇所を指定して繰り返し聞きたかった。 ソリューションプラットフォームは Any CPU! 手順 [ ツール ] > [ ツールボックス アイテムの選択 ] [ COM コンポーネント ] タブをクリック。 Windows Media Player…

C#_戻り値 void と Task と Task<T>

C#_Invoke と lock と await の続き。 Task<T> を使うなら、await で処理終わってないと使えない。 親スレッド → メインスレッド子スレッド → ワーカースレッド後者が正式名称。 async / await の戻り値 async を付けた非同期メソッドの戻り値は、void か Task </t>…

C#_Invoke と lock と await

再度調べ。UI は親スレッドのみでしか動かない。 Invoke Task により、子スレッドが実行されたとする。子スレッドから、親スレッドのコントロール ( Form など ) のデータを書き換える際、Invoke が使われる。 Form 配下の全てのコントロールで使用可。※複数…

C#_非同期処理の種類

タスク並列 が async/await の記述に関係あるかなと思って流し読みしたがあんま関係なかった。 非同期処理といっても、いくつかの種類があり書き方・使うライブラリが違う。 ・バックグラウンド処理 ( 非同期メソッド ( async / await キーワード ) ) ・並列…

C#_非同期メソッド

スレッドを使った非同期処理を行いたい動機。 非ブロッキング処理:I/O 待ちとかで UI スレッドをフリーズさせないようにする。 並列処理:マルチコアを活かした並列処理でパフォーマンス向上。 非ブロッキング処理は async / await で簡素化。( Ver4.0 前は…

C#_Task や非同期などの 単語メモ

復習かねて。挙動が分からずただ書き留めているだけのモノもあり。アルファベット・五十音順。 AsParallel LINQ で並列処理が出来る。Parallel も参照。 source は配列などのコレクション。 単一スレッド実行 var result = source.Select(Foo); 並列実行 var…

C#_Task ( ContinueWith )

とあるタスクが完了したときに非同期的に実行される継続を作成する。ContinueWith メソッドは Task1 が完了していることを検知した上でTask2 を開始する。次のタスクを実行する条件など細かい制御が可能。非同期処理の結果を使いたい場合などにも使える。 Ta…

C#_Task と Task.Run

ドキュメント解読。 ---メソッドとプロパティ--- Task.Factory.StartNew:デリゲート。非同期的に実行する。Task のインスタンスを作成し、Start() ( タスクの開始 ) を呼び出すことと同じ。Task.Run と同じ、もよう。 Task.Wait:タスクが完了するのを待つ…

C#_スレッド について 03

知りたかったこと・スレッドをどう起動するのか ?・スレッドの終了をどう知るのか ?・スレッドの実行結果をどう受け取るのか ?・どのスレッドで処理が実行されているのか ? どのスレッドで処理が実行されているのか ※コンソールアプリケーションでは、await …

C#_スレッド について 02

続き。ソースは前の01を流用。知りたかったこと・スレッドをどう起動するのか ?・スレッドの終了をどう知るのか ?・スレッドの実行結果をどう受け取るのか ?・どのスレッドで処理が実行されているのか ? スレッドの終了と結果受け取り 戻り値 task を出力し…

C#_スレッド について 01

別スレッド、非同期、など分からなくなってきた。子スレッドと書いてあったが別スレッドのこと ? スレッドを使うのは、メインスレッド処理の邪魔をしたくないから。重い処理を別スレッドにさせて、メインスレッドに即リターンさせる。 知りたかったこと・ス…

C#_エスケープの手間を省く

ごっちゃになる。 エスケープ:逃亡する、脱出する、逃れる、免れる、はずれる。シーケンス:連続。順番に並んでいること、など。連続した文字列から逃れる、ということは特殊な意味になるということ。かな? エスケープ文字 正反対の 2 つの意味を持つ。1 ) …

高階関数とは 02

よく分からんので C# のソースコピペ。 高階関数のメリット 定義する関数の数を減らし、アルゴリズムをより抽象的に捉えることが出来る。抽象的:具体性にかけるさま。 ex ) // データ用意 List<int> data = new List<int>(); data.Add( ~ // 高階関数呼び出し Hoge(d</int></int>…

高階関数とは 01

関数オブジェクト ( 関数のように振る舞うことのできるオブジェクト ) を習得しようと思ったが一先ずこっち調べた。 [ たかしな ] と打った方がすぐに変換できる。 「引数または戻り値を、関数とする」関数のこと。通常は int 型や string型など の型だが、…

C#_static メモ 02 ( 静的コンストラクタ )

通常のコンストラクタが新しいインスタンスが生成されるたびに呼び出されるのに対し、静的コンストラクタは1 度だけ呼び出される。呼び出されるタイミングは、そのクラスの何らかのメンバに初めてアクセスしたとき。 ex ) どちらで実行しても、以下のように…

C#_static メモ 01

C++ のstatic 調べていて分からなくなったので復習。 ------ static:静的なメソッドやフィールドを作るための予約語。 静的:実行時に変化しないこと。動的が実行中の条件によって動作や結果が変わるのに対し、静的は状況によらず固定された動作や結果とな…

C#_継承 引数ありの基底クラスのコンストラクタを呼び出す

継承の引数云々が分からなくなったのでメモ。親クラス=基底クラス。派生クラス=子クラス。 派生クラスのインスタンスを生成する際、 自動的に基底クラスのコンストラクタも呼び出される。しかし呼び出されるコンストラクタは、引数なしのコンストラクタ。 …

論理演算の使い道メモ

左シフトやら右シフトすれば bit 変換 ( 記事最後のヤツ ) できるのか疑問だったので調べた。コピペ。 ビット数が違うデータ同士の計算 10 bit と 12 bit で出力された同値の数を int 型変数 16 bit に入れると、以下のようになる。|| は論理和ではなくただ…

C#_ LockBits と UnlockBits メモ 02

メモ 01 の関数やプロパティ調べ。 LockBits ( Rectangle, ImageLockMode, PixelFormat ) Rectangle:ロックする部分を指定する Rectangle 構造体。 ImageLockMode:アクセスレベル ( 読み取り / 書き込み ) を指定する ImageLockMode 列挙体。ex ) ReadOnly…

C#_ LockBits と UnlockBits メモ 01

画像を扱う時に LockBits を使った方がいいらしい。ポインタに展開されている画像データを配列に入れて、変更して再度ポインタに戻す的な。 LockBits :Bitmap をシステムメモリにロックする。UnlockBits:システムメモリから Bitmap のロックを解除する。 -…

C++_PictureBox.Image に代入しスクロールをすると赤バツ の続き

C++ でもらった Bitmap^ を PictureBox.Image に代入しスクロールをすると赤バツ の続き。 cv::Ptr<IplImage> ipImag が、System::Drawing::Bitmap^ bmp = gcnew の時は生きているがスコープ抜けると解放されるのが原因。多分。浅いコピーだろうから深いコピーにしたか</iplimage>…

C#_C++ からもらった Bitmap^ を PictureBox.Image に代入しスクロールをすると赤バツ

OpenCV_画像を IplImage型 で読み込んで System::Drawing::Bitmap^ に変換 の続き。 Debug で動かしてたが、ネイティブコードのデバッグを有効にしていなかった。有効にすると下記のエラー。 Application.Run(new FormMain());読み取り中にアクセス違反が発…

C#_ PictureBox.Image のロック

赤バツに関係あるかと思ったがなさげ。 PictureBox1.Image = System.Drawing.Image.FromFile(@"./\test.bmp"); この方法で表示した画像ファイルはロックされ、削除できなくなる。Image プロパティで画像を表示している間は、その画像の削除・名前変更・上書…

C#_フォルダを指定してファイル名を取得

Directory.GetFiles とか覚えられん。 ※ デザインから folderBrowserDialog 設置済み if (folderBrowserDialog.ShowDialog() != DialogResult.OK) { return; } string folderPath = folderBrowserDialog.SelectedPath; string[ ] getFiles = Directory.GetFi…

C++ C++/CLI の配列の書き方

分からなくなる。 C++ int p[ 10 ]; int p[ ] = { 1, 2, 3 }; // 初期化 or int* p = new int[ foo ]; // 要素数を変数とする場合。int foo = 5; C++/CLI // unmanaged int* p = new int[10]; int p[ ] = { 1, 2, 3 }; // 初期化 // managed array< int >^ p…

C#_DisplayMember と ValueMember

「セレクトボックスに自作の Value と Key を設定したい」記事のソース解読。 DisplayMember コントロールに表示するプロパティを取得・設定する。既定値は空文字。 表示項目を ToString でなく、あるプロパティが返す値を表示したいのであれば、そのプロパ…

C#_セレクトボックスに自作の Value と Key を設定したい

DisplayMember と ValueMember をつかうもよう。 経緯 セレクトボックス ( コンボボックス ) の SelectedIndex は上から自動で採番されるので、Value に応じた値が欲しい。Memo:コンボボックスは文字を直接入力することが出来る。 ex) ※同じファイルに記述…

C#_オーバーライド virtual と override

基底クラスのメンバが隠蔽されている場合、どのメンバが呼び出されるかは変数の型 ( 静的な型 ) によって決定する。 だが、ほとんどの場合メソッドの呼び出しは動的に決定した方が都合がいい。動的な型 に基づいて呼び出されるメソッドを選びたい場合の記述…

C#_基底クラスの隠蔽

派生クラスで、基底クラスの public メンバと同名のメンバを再定義すると基底クラスのメンバが新しく追加されたメンバに隠れる。 派生クラスで基底クラスと同じシグネチャのメンバを宣言することを「基底クラスのメンバを隠蔽する」という。 基底クラスのメ…

C#_継承 と オーバーライド のMemo コード

virtual と override の使い方が分かっていなかった…。多態性とごっちゃになっていた。オーバーライドは親メソッドが上書きされる。多態性はオブジェクトが複数の型に属することを許す性質。 親クラス class BaseHoge { public BaseHoge() { Console.WriteLi…