.NET Framework
Color.Redは、赤色のColor構造体オブジェクトを返す。Color.Red プロパティ (System.Drawing) | Microsoft DocsForm.BackColorにこれをセットすると赤色になる。 LoadをダブルクリックでLoadをダブルクリックで、で、こう書く。 赤くなった赤くなった。Sampl…
Form.BackColorでFormの背景色をセットする。Form.BackColor プロパティ (System.Windows.Forms) | Microsoft Docs最初のBackColorは、 こうなっているこうなっている。 このまま実行したら、 このControl色このControl色。 あらかじめ決められた色でも選べ…
Sizeは、幅と高さをセットする時に使う。Size 構造体 (System.Drawing) | Microsoft DocsForm.Sizeは、 300, 300の状態300, 300の状態。 Loadのイベントハンドラを定義Loadのイベントハンドラを定義。Size構造体sizeのWidthとHeightにそれぞれ150をセットし…
ウィンドウのサイズは、Form.Sizeで指定する。Form.Size プロパティ (System.Windows.Forms) | Microsoft Docs StartPositionは、Locationだから、Sizeとは関係ないか。StartPositionは、Locationだから、Sizeとは関係ないか。 最初は300, 300になってるので…
Pointは、2次元座標の位置をセットする時に使う。Point 構造体 (System.Drawing) | Microsoft Docs ManualにしておくManualにしておく。 左上ぴったり左上ぴったり。 Load時にLocationをセットしてみるLoad時にLocationをセットしてみる。Point構造体pointの…
FormStartPosition.Manualで、ウィンドウの表示位置をForm.Locationの位置にできる。FormStartPosition 列挙型 (System.Windows.Forms) | Microsoft Docs最初は、 こうなっているのでこうなっているので、 Locationが0, 0でも、Locationが0, 0でも、 左上に…
ウィンドウの細かい位置は、Form.Locationで指定する。Form.Location プロパティ (System.Windows.Forms) | Microsoft Docsまず、 StartPositionをWindowsDefaultLocationにするStartPositionをWindowsDefaultLocationにする。 毎回違うけど、大体この辺に来…
手動で、コード上で、ウィンドウを画面中央にするには、FormStartPosition.CenterScreenを指定する。FormStartPosition 列挙型 (System.Windows.Forms) | Microsoft Docs最初に、 この状態だとOSの既定値になるこの状態だとOSの既定値になる。 だいたいこう…
WinFormsで、起動時のウィンドウ表示位置は、まずForm.StartPositionで決定される。Form.StartPosition プロパティ (System.Windows.Forms) | Microsoft Docs WindowsDefaultLocationに設定してある場合WindowsDefaultLocationに設定してある場合、 ここだっ…
Task.Delayは、指定したミリ秒後に完了するタスクを作成する。Task.Delay メソッド (System.Threading.Tasks) | Microsoft Docs Task.Delay メソッドの謎作成するとしか書いてないが、実際は実行されてるはず(?)で、その実行をawaitすることで、Sleepみたい…
TaskCreationOptions.AttachedToParentを内側のタスクに指定することで、タスクに親子関係を持たせることが出来た。 TaskFactory.StartNewの場合、 // 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) using System.Threading; u…
.NET Framework 4.5では、Task.Runで非同期処理を実行できるようになった。Task.Run メソッド (System.Threading.Tasks) | Microsoft Docs C# 非同期、覚え書き。 - QiitaMainClass.csで、Task.RunにActionを指定するだけ。 外側も内側も別タスクで同時に実…
前回もやったが、TaskCreationOptions.AttachedToParentを指定すると、タスクが親子関係になり、子タスクが終わるまで待ってくれる。TaskCreationOptions Enum (System.Threading.Tasks) | Microsoft Docs子タスクの中に孫タスクを入れてみる。 最初に、Main…
Taskは入れ子にする事も出来る。MainClass.csにて、 // 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) using System.Threading; using System.Threading.Tasks; // マルチスレッド(System.Threading名前空間) // MainClassの定…
CancellationToken.ThrowIfCancellationRequestedは、CancellationTokenSource.Cancelが実行されたら、OperationCanceledExceptionを投げる。CancellationToken.ThrowIfCancellationRequested メソッド (System.Threading) | Microsoft Docs 【C#】タスクの…
前回も使ったけど、CancellationToken.IsCancellationRequestedでキャンセルがリクエストされたか判定する。CancellationToken.IsCancellationRequested プロパティ (System.Threading) | Microsoft Docs今回は、Windowsフォームアプリケーションでやってみ…
キャンセルが要求された時の処理は、CancellationToken構造体のプロパティやメソッドを使いつつ、自前で処理を書かないといけない。CancellationToken 構造体 (System.Threading) | Microsoft DocsMainClass.csで、今回は、CancellationToken.IsCancellation…
CancellationTokenSource.Cancelで、キャンセル要求をする。CancellationTokenSource.Cancel メソッド (System.Threading) | Microsoft Docs今度はWindowsフォームアプリケーションでやってみる。 配置はこう。button1をRun、button2をCancelとする。配置は…
TaskFactory.StartNewにactionに加えて、cancellationTokenを指定することで、キャンセルに対応できる。TaskFactory.StartNew メソッド (System.Threading.Tasks) | Microsoft Docs [雑記] スレッド プールとタスク - C# によるプログラミング入門 | ++C++; …
続いて、CancellationTokenSource.Tokenで、CancellationTokenオブジェクトを取得する。CancellationTokenSource.Token プロパティ (System.Threading) | Microsoft DocsMainClass.csで、cts.Tokenを出力。 こうなるこうなる。Sample/dotnet/CancellationTok…
Taskをキャンセルできるようにする仕組みを作るには、CancellationTokenが必要。 まずは、CancellationTokenSourceを生成する。CancellationTokenSource クラス (System.Threading) | Microsoft DocsMainClass.csで、まずは、CancellationTokenSourceを生成…
Task.Waitで、そのタスクが完了するまで待つ。Task.Wait メソッド (System.Threading.Tasks) | Microsoft DocsMainClass.csで、とすると、 t.Wait()で待ち状態に入った後、タスクの処理がすべて完了してから、"Finish after"が出力されてる。t.Wait()で待ち…
タスクの状態は、Task.Statusで確認することもできる。Task.Status プロパティ (System.Threading.Tasks) | Microsoft DocsMainClass.csで、前回と同様に3秒ごとに確認。 今回は、Task.Statusを出力するだけ。 途中Runningだったのが、最後RanToCompletionに…
タスクが完了したかどうかは、Task.IsCompletedでわかる。Task.IsCompleted プロパティ (System.Threading.Tasks) | Microsoft DocsMainClass.csで、3秒後に確認し、さらにその3秒後にまた確認する。 1回目はまだだったが、2回目は完了を確認した。1回目はま…
WinFormsの場合、TaskScheduler.FromCurrentSynchronizationContextで、同期コンテキストに基づいたタスクスケジューラを取得して、それを使うことで、継続タスクをUIスレッドで実行できた。 では、コンソールアプリの場合はどうか。 // 名前空間の登録 usin…
Task.ContinueWithに、継続タスクに加えて、タスクスケジューラも渡せる。Task.ContinueWith メソッド (System.Threading.Tasks) | Microsoft DocsForm1.csで、こうすると、 継続タスクのスレッドIDが、タスクの外のスレッドIDと同じになる。継続タスクのス…
TaskScheduler.FromCurrentSynchronizationContextで取得したschedulerを、Task.Startに渡した時に、TaskScheduler.DefaultとTaskScheduler.Currentがどうなっているか確認する。TaskScheduler.Current プロパティ (System.Threading.Tasks) | Microsoft Doc…
Task.Startにタスクスケジューラを渡せる。Task.Start メソッド (System.Threading.Tasks) | Microsoft DocsTaskScheduler.FromCurrentSynchronizationContextで取得したschedulerを、Task.Startに渡すとどうなるか。このように書く。 実行してbutton1を押す…
TaskScheduler.FromCurrentSynchronizationContextで、現在の同期コンテキストに紐付いたタスクスケジューラを生成できる。TaskScheduler.FromCurrentSynchronizationContext メソッド (System.Threading.Tasks) | Microsoft DocsForm1.csで、と書く。 butto…
既にやってるけど、Task.Startでタスクを開始するという場合もある。Task.Start メソッド (System.Threading.Tasks) | Microsoft DocsコンソールアプリでTask.Startはやってるけど、WinFormsでTask.Startした場合に、Taskの外と中で、現在のタスクスケジュー…