.NET Framework

Color.Red

Color.Redは、赤色のColor構造体オブジェクトを返す。Color.Red プロパティ (System.Drawing) | Microsoft DocsForm.BackColorにこれをセットすると赤色になる。 LoadをダブルクリックでLoadをダブルクリックで、で、こう書く。 赤くなった赤くなった。Sampl…

Form.BackColor

Form.BackColorでFormの背景色をセットする。Form.BackColor プロパティ (System.Windows.Forms) | Microsoft Docs最初のBackColorは、 こうなっているこうなっている。 このまま実行したら、 このControl色このControl色。 あらかじめ決められた色でも選べ…

Size

Sizeは、幅と高さをセットする時に使う。Size 構造体 (System.Drawing) | Microsoft DocsForm.Sizeは、 300, 300の状態300, 300の状態。 Loadのイベントハンドラを定義Loadのイベントハンドラを定義。Size構造体sizeのWidthとHeightにそれぞれ150をセットし…

Form.Size

ウィンドウのサイズは、Form.Sizeで指定する。Form.Size プロパティ (System.Windows.Forms) | Microsoft Docs StartPositionは、Locationだから、Sizeとは関係ないか。StartPositionは、Locationだから、Sizeとは関係ないか。 最初は300, 300になってるので…

Point

Pointは、2次元座標の位置をセットする時に使う。Point 構造体 (System.Drawing) | Microsoft Docs ManualにしておくManualにしておく。 左上ぴったり左上ぴったり。 Load時にLocationをセットしてみるLoad時にLocationをセットしてみる。Point構造体pointの…

FormStartPosition.Manual

FormStartPosition.Manualで、ウィンドウの表示位置をForm.Locationの位置にできる。FormStartPosition 列挙型 (System.Windows.Forms) | Microsoft Docs最初は、 こうなっているのでこうなっているので、 Locationが0, 0でも、Locationが0, 0でも、 左上に…

Form.Location

ウィンドウの細かい位置は、Form.Locationで指定する。Form.Location プロパティ (System.Windows.Forms) | Microsoft Docsまず、 StartPositionをWindowsDefaultLocationにするStartPositionをWindowsDefaultLocationにする。 毎回違うけど、大体この辺に来…

FormStartPosition.CenterScreen

手動で、コード上で、ウィンドウを画面中央にするには、FormStartPosition.CenterScreenを指定する。FormStartPosition 列挙型 (System.Windows.Forms) | Microsoft Docs最初に、 この状態だとOSの既定値になるこの状態だとOSの既定値になる。 だいたいこう…

Form.StartPosition

WinFormsで、起動時のウィンドウ表示位置は、まずForm.StartPositionで決定される。Form.StartPosition プロパティ (System.Windows.Forms) | Microsoft Docs WindowsDefaultLocationに設定してある場合WindowsDefaultLocationに設定してある場合、 ここだっ…

Task.Delay

Task.Delayは、指定したミリ秒後に完了するタスクを作成する。Task.Delay メソッド (System.Threading.Tasks) | Microsoft Docs Task.Delay メソッドの謎作成するとしか書いてないが、実際は実行されてるはず(?)で、その実行をawaitすることで、Sleepみたい…

TaskCreationOptions.DenyChildAttach

TaskCreationOptions.AttachedToParentを内側のタスクに指定することで、タスクに親子関係を持たせることが出来た。 TaskFactory.StartNewの場合、 // 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) using System.Threading; u…

Task.Run

.NET Framework 4.5では、Task.Runで非同期処理を実行できるようになった。Task.Run メソッド (System.Threading.Tasks) | Microsoft Docs C# 非同期、覚え書き。 - QiitaMainClass.csで、Task.RunにActionを指定するだけ。 外側も内側も別タスクで同時に実…

TaskCreationOptions.AttachedToParent

前回もやったが、TaskCreationOptions.AttachedToParentを指定すると、タスクが親子関係になり、子タスクが終わるまで待ってくれる。TaskCreationOptions Enum (System.Threading.Tasks) | Microsoft Docs子タスクの中に孫タスクを入れてみる。 最初に、Main…

TaskFactory.StartNew(action,creationOptions)

Taskは入れ子にする事も出来る。MainClass.csにて、 // 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) using System.Threading; using System.Threading.Tasks; // マルチスレッド(System.Threading名前空間) // MainClassの定…

CancellationToken.ThrowIfCancellationRequested

CancellationToken.ThrowIfCancellationRequestedは、CancellationTokenSource.Cancelが実行されたら、OperationCanceledExceptionを投げる。CancellationToken.ThrowIfCancellationRequested メソッド (System.Threading) | Microsoft Docs 【C#】タスクの…

CancellationToken.IsCancellationRequested

前回も使ったけど、CancellationToken.IsCancellationRequestedでキャンセルがリクエストされたか判定する。CancellationToken.IsCancellationRequested プロパティ (System.Threading) | Microsoft Docs今回は、Windowsフォームアプリケーションでやってみ…

CancellationToken

キャンセルが要求された時の処理は、CancellationToken構造体のプロパティやメソッドを使いつつ、自前で処理を書かないといけない。CancellationToken 構造体 (System.Threading) | Microsoft DocsMainClass.csで、今回は、CancellationToken.IsCancellation…

CancellationTokenSource.Cancel

CancellationTokenSource.Cancelで、キャンセル要求をする。CancellationTokenSource.Cancel メソッド (System.Threading) | Microsoft Docs今度はWindowsフォームアプリケーションでやってみる。 配置はこう。button1をRun、button2をCancelとする。配置は…

TaskFactory.StartNew(action,cancellationToken)

TaskFactory.StartNewにactionに加えて、cancellationTokenを指定することで、キャンセルに対応できる。TaskFactory.StartNew メソッド (System.Threading.Tasks) | Microsoft Docs [雑記] スレッド プールとタスク - C# によるプログラミング入門 | ++C++; …

CancellationTokenSource.Token

続いて、CancellationTokenSource.Tokenで、CancellationTokenオブジェクトを取得する。CancellationTokenSource.Token プロパティ (System.Threading) | Microsoft DocsMainClass.csで、cts.Tokenを出力。 こうなるこうなる。Sample/dotnet/CancellationTok…

CancellationTokenSource

Taskをキャンセルできるようにする仕組みを作るには、CancellationTokenが必要。 まずは、CancellationTokenSourceを生成する。CancellationTokenSource クラス (System.Threading) | Microsoft DocsMainClass.csで、まずは、CancellationTokenSourceを生成…

Task.Wait

Task.Waitで、そのタスクが完了するまで待つ。Task.Wait メソッド (System.Threading.Tasks) | Microsoft DocsMainClass.csで、とすると、 t.Wait()で待ち状態に入った後、タスクの処理がすべて完了してから、"Finish after"が出力されてる。t.Wait()で待ち…

Task.Status

タスクの状態は、Task.Statusで確認することもできる。Task.Status プロパティ (System.Threading.Tasks) | Microsoft DocsMainClass.csで、前回と同様に3秒ごとに確認。 今回は、Task.Statusを出力するだけ。 途中Runningだったのが、最後RanToCompletionに…

Task.IsCompleted

タスクが完了したかどうかは、Task.IsCompletedでわかる。Task.IsCompleted プロパティ (System.Threading.Tasks) | Microsoft DocsMainClass.csで、3秒後に確認し、さらにその3秒後にまた確認する。 1回目はまだだったが、2回目は完了を確認した。1回目はま…

SynchronizationContext.SetSynchronizationContext

WinFormsの場合、TaskScheduler.FromCurrentSynchronizationContextで、同期コンテキストに基づいたタスクスケジューラを取得して、それを使うことで、継続タスクをUIスレッドで実行できた。 では、コンソールアプリの場合はどうか。 // 名前空間の登録 usin…

Task.ContinueWith(continuationAction,scheduler)

Task.ContinueWithに、継続タスクに加えて、タスクスケジューラも渡せる。Task.ContinueWith メソッド (System.Threading.Tasks) | Microsoft DocsForm1.csで、こうすると、 継続タスクのスレッドIDが、タスクの外のスレッドIDと同じになる。継続タスクのス…

TaskScheduler.Current

TaskScheduler.FromCurrentSynchronizationContextで取得したschedulerを、Task.Startに渡した時に、TaskScheduler.DefaultとTaskScheduler.Currentがどうなっているか確認する。TaskScheduler.Current プロパティ (System.Threading.Tasks) | Microsoft Doc…

Task.Start(scheduler)

Task.Startにタスクスケジューラを渡せる。Task.Start メソッド (System.Threading.Tasks) | Microsoft DocsTaskScheduler.FromCurrentSynchronizationContextで取得したschedulerを、Task.Startに渡すとどうなるか。このように書く。 実行してbutton1を押す…

TaskScheduler.FromCurrentSynchronizationContext

TaskScheduler.FromCurrentSynchronizationContextで、現在の同期コンテキストに紐付いたタスクスケジューラを生成できる。TaskScheduler.FromCurrentSynchronizationContext メソッド (System.Threading.Tasks) | Microsoft DocsForm1.csで、と書く。 butto…

Task.Start

既にやってるけど、Task.Startでタスクを開始するという場合もある。Task.Start メソッド (System.Threading.Tasks) | Microsoft DocsコンソールアプリでTask.Startはやってるけど、WinFormsでTask.Startした場合に、Taskの外と中で、現在のタスクスケジュー…