プログラミング

C++_配列を関数に渡したいメモ

配列を受け取ってメンバ変数に代入し値を保持したかったが、時間かかったので。 配列全体のバイト数:sizeof ( 配列変数 )配列要素の型サイズ:sizeof ( 型 ) 配列変数を引数にとる場合は、関数の定義の方は void func(int array[ ]);のように大きさの未定な…

IEnumerable の Zip について

Dictionary で出てきたので調べ。 シーケンス:連続。連続して起こる順序。あらかじめ設定しておく動作の順序。順番に並んでいること。並んでいる順番で処理を行うこと。処理の順番の並びや、データの順番の並びのこと。 2 つのデータを 1 つにまとめる。 同…

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 前は…

非同期処理と並列処理

非同期処理はタイミングを取らないこと。スレッド云々は関係ない、と認識することにした。 同期処理:複数の処理でタイミングを取ること。他の処理が終わるまで待機。 非同期処理:複数の処理でタイミングを取らないこと。 他の処理関係なく自分の処理を進め…

JavaScript_同期・非同期 と キュー 02 ( とコールバック )

続き。ログを 3 つ出力する処理を例に。 非同期 setTimeout 関数:指定された遅延の後に 関数 または コードの断片 を実行するタイマーを設定。戻り値は、作成したタイマーを識別する正の整数値。 console.log(1); setTimeout ( function(){ console.log(2) …

JavaScript_同期・非同期 と キュー 01

長いので 01 と 02 に分割。非同期処理とマルチスレッドについて調べ始めたら、JavaScript を例にとっているサイトが多かったので。 -----とりあえず分かったこと----- キューに登録された順に実行される。コールバック関数は、 ( 実行できるような状態にな…

並行と並列の違い

非同期処理とマルチスレッドについて調べ始めたが、並行処理と並列処理の違いが出てきた。 並行:並んで進むこと。 並列:同種のものが左右に並ぶこと、並べること。 PC が仕事 ( 実行 ) をする時の単位が Process 。リソースも含めた仕事するための必要な塊…

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

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

同期・排他とは

参照サイトは Java。 同期は目的であり、排他はその手段。 マルチスレッド:スレッドが複数ある状態のこと。同期を取らないと値が不正になる場合が多い。 デッドロック:マルチスレッドにおいて、複数のスレッドが互いのスレッドを排他してしまいプログラム…

スレッドとは

Java サイトから。 プログラムの流れ。処理の実行単位 ( の一つ ) 。タスクやプロセスより細かい処理の実行単位。 実行された main メソッドから始まり、上から下へと順番に実行されていく。この流れが「スレッド」。スレッドは、最初に呼び出されたメソッド…

C++_メソッドの呼び出し方メモ

「C++_コンストラクタに引数を渡して初期化」内の「===Memo===」へ追記的な立ち位置。 // A auto ch = new CHoge(); ch->xxx(); delete ch; // B CHoge ch; ch.xxx(); クラスは「 . 」でそのクラスのメソッドを呼び出せる。( B )A の auto 、この型はポイン…

C++_配列を std::vector に変換

値を std::vector にコピーする。 int intAry[5] = { 1, 2, 3, 4, 5 }; std::vector<int> intVec(std::begin(intAry), std::end(intAry)); std::vector<型> 変数名 ( 型* first, 型* last); と記述すると、first から last が指す先までのデータで初期化できる。 </int>…

if 文構文メモ

if 文の引数には最終的に true か false どちらかを与える。考え方は、 ○ if ( 真 or 偽) { × if ( 条件 ) { 引数が true の時に処理を実行する、という構文。故に、if ( foo == true ) は冗長。 こちらから。 https://qiita.com/Ratty27/items/c142412bc611…

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

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

「以上以下」のソース メモ

不安になる時がある。 言語はC# int[ ] test = new int[ ] { 10, 22, 33, 34, 45, 46, 57, 58, 60 }; foreach (var i in test) { if (30 <= i && i <= 50) { Console.WriteLine(i); } } //33, 34, 45, 46 10 ~ 35 の範囲、または 50 ~ 80 の範囲。( for 略…

高階関数とは 02

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

高階関数とは 01

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

C++_静的メンバ 03

静的メンバ関数について。 静的メンバ変数は実体がなくとも存在している ( インスタンス生成しなくとも存在 ) 。静的メンバ変数はプログラムの初めに初期化されているので、コンストラクタが呼ばれていなくても参照することに問題はない。 ex ) 実体なしで s…

C++_静的メンバ 02

参照先 URL で静的変数と静的メンバ変数が出てくるが、静的変数は関数内の static 変数で、静的メンバ変数はクラス内の変数。 要点 静的メンバ変数は静的変数なので、初期値は 0。初期値を設定したい場合は定義部分に。( main.cpp の int Hoge::m_num = 10; …

C++_静的メンバ 01 - b ( extern なしでエラー )

a 記事にてグローバル変数のコードを写経して実行してもエラーで躓いたのでその軌跡。 参照先のコードをそのまま下記のように記述したが、リンクエラー LNK1169 と LNK2005 が発生。 LNK1169:1 つ以上の複数回定義されているシンボルが見つかりました。この…

C++_静的メンバ 01 - a

C# の静的メンバと同じだが、C++ の書き方を知らないと理解できない。static クラスと普通のクラスとの区別つかなくなってきた。 ・静的メンバ変数は、さらに実体を別に宣言する必要がある。・静的メンバ変数は、どれだけインスタンスを作っても共有される。…