.NET Framework

Thread.CurrentThread

Thread.CurrentThreadは、現在のスレッドオブジェクトを返すスタティックメソッド。Thread.CurrentThread プロパティ (System.Threading) | Microsoft DocsデリゲートとBeginInvokeなどを使った非同期処理において、UIスレッドとワーカースレッドが違うスレ…

TaskScheduler.Default

TaskScheduler.Defaultは、デフォルトのTaskSchedulerインスタンスを持つ。TaskScheduler.Default プロパティ (System.Threading.Tasks) | Microsoft DocsTaskScheduler.Currentと同じかどうか確かめる。実行すると、 Default: System.Threading.Tasks.Threa…

TaskScheduler

TaskSchedulerが、複数あるタスクをどのように実行していくか管理している。TaskScheduler クラス (System.Threading.Tasks) | Microsoft Docs TaskScheduler クラスまず、そのプログラムの現在のタスクスケジューラが何かを出力する。現在のタスクスケジュ…

TaskFactory.StartNew

TaskFactory.StartNewでタスクを実行する。TaskFactory.StartNew メソッド (System.Threading.Tasks) | Microsoft Docsたくさんオーバーライドメソッドがあるが、Actionだけのメソッドと同じ意味の引数を指定したメソッドで実行してみる。C# 非同期、覚え書…

TaskFactory

TaskFactoryでタスクの生成や実行順などの操作ができる。TaskFactory クラス (System.Threading.Tasks) | Microsoft DocsStartNew以外の他のメソッドを扱おうにも、この段階では1つずつ説明しないと難しそうなので、今回は、いったんインスタンスを受け取っ…

Task.Factory

Taskを実行する方法はもう一つあり、Task.FactoryプロパティにTaskFactoryインスタンスを持っているので、それのStartNewメソッドを使うこともできる。Task.Factory プロパティ (System.Threading.Tasks) | Microsoft DocsMainClass.csで、Task.Factory.Star…

Process.StandardOutput

Process.StandardOutputは、子プロセスの標準出力ストリーム。Process.StandardOutput プロパティ (System.Diagnostics) | Microsoft DocsProcess.StandardOutputから子プロセスの出力結果を読み出す。 中身はStreamReaderなので、ReadToEndで読み出せる。子…

TextReader.ReadToEnd

末尾まで読み込むなら、TextReader.ReadToEndを使う。TextReader.ReadToEnd メソッド (System.IO) | Microsoft Docs一気に読み込みたい場合は、これがいいだろう。戻り値に返ってきた文字列を全部textに突っ込む。全部読み込めた全部読み込めた。Sample/dotn…

TextReader.ReadLine

1行ずつ読み込むなら、TextReader.ReadLineを使う。TextReader.ReadLine メソッド (System.IO) | Microsoft Docs行ごとに処理したい場合は、これがいいだろう。もう無い場合はnullが返ってくるので、そこでループを抜ける。行ごとに出力行ごとに出力された。…

TextReader.Read

TextReader.ReadでTextReaderから文字を読み取る。TextReader.Read メソッド (System.IO) | Microsoft Docs1文字というのもあるけど、今回は指定されたバッファに指定された文字数読み取る。test.txtに5文字test.txtに5文字。しかしコード上は3文字しか読み…

Process.WaitForExit

Process.WaitForExitで、起動したプロセスが終了するまで待つ。Process.WaitForExit メソッド (System.Diagnostics) | Microsoft Docs前回は、メインのコマンドプロンプトが子のコマンドプロンプトを起動した後にすぐ終了したので1つにか見えなかった。 今回…

ProcessStartInfo

ProcessStartInfoクラスでさまざまな起動プロセスの設定ができる。ProcessStartInfo クラス (System.Diagnostics) | Microsoft Docs今回は、コマンドプロンプトを介して、pingコマンドを投げる。FileNameにEnvironment.GetEnvironmentVariableで取得したComS…

Process.StartInfo

Processオブジェクトインスタンスで実行する場合は、コマンドや引数などはStartInfoプロパティを使って設定する。Process.StartInfo プロパティ (System.Diagnostics) | Microsoft Docstest.txtを開くなら、こう指定すると、test.txtが開いた。test.txtが開…

Process.Start

Process.Startでプロセスを実行する。Process.Start メソッド (System.Diagnostics) | Microsoft Docsstaticメソッドの場合、コマンド名(実行ファイル名、実行ファイルパス)と、それ以降の引数を渡せる。 メモ帳でtest.txtを開く。として、test.txtを置いたt…

Environment.GetEnvironmentVariable

指定の環境変数の値を取得するには、Environment.GetEnvironmentVariableを使う。Environment.GetEnvironmentVariable メソッド (System) | Microsoft DocsComSpec、OS、Pathの値を取得する。として実行すると、 cmd = C:\Windows\system32\cmd.exe os = Win…

Environment

Environmentは、環境情報、プラットフォーム状況の取得、設定に使う。Environment クラス (System) | Microsoft DocsOSバージョンを取得する。OSVersionはOperatingSystem型なのでToStringする。 version = Microsoft Windows NT 6.1.7601 Service Pack 1 続…

Task

.NET Framework 4.0で、非同期操作のためのクラスTaskが追加された。Task クラス (System.Threading.Tasks) | Microsoft DocsこれまでThreadで書いていた非同期処理をTaskで書いてみる。 Taskのインスタンスを使う場合は、実行すると、 Main(1) Task(1) Main…

Thread.Start

Thread.Startでスレッドを開始する。Thread.Start メソッド (System.Threading) | Microsoft DocsStartは引数を受け取ることが出来るオーバーロードもあるので、今回はそちらを扱う。Startに3を渡して、ThreadFuncでは渡された引数分の3回だけ回してもらうこ…

Thread.Join

Thread.Joinで、ワーカースレッドが終了するまで待つ。Thread.Join メソッド (System.Threading) | Microsoft Docsメインスレッドの方が先に終わってしまうような場合。 // 名前空間の登録 using System; // 共通データ型と基本クラス(System名前空間) using…

ThreadStart

ThreadStartデリゲートにスレッドで実行するメソッドを入れておく。ThreadStart 代理人 (System.Threading) | Microsoft Docs ThreadStartデリゲート変数thstを置いちゃう。で、それをThreadのコンストラクタに渡す。 同時並行で走らせる。 Main(1) ThreadFu…

EventArgs

イベントハンドラの第2引数として渡されるのがEventArgs。 イベントに関する情報がはいっている。EventArgs Class (System) | Microsoft Docs基本的には、自分で継承して独自の情報を格納できるようにしておいて、ハンドラに渡すという形になる。空のプロジ…

Collection<T>

Collection<T>は、ジェネリクスなコレクションの基本クラス。https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.objectmodel.collection-1?view=netframework-4.8<T>のないバージョンはない。 List<T>を先にやってしまったが、本来こちらを先にやるべ</t></t></t>…

IList<T>

IList<T>は、ジェネリクス版のIList。https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.ilist-1?view=netframework-4.8List<T>インスタンスをIList<T>に突っ込んでみる。List<T>がIList<T>を継承してるから当然だが。 i = 1 i = 2 i = 3 i = 4 i = </t></t></t></t></t>…

List<T>

List<T>は、ジェネリクスで型を指定できるリスト。 (ArrayListのジェネリクス版に相当する。)https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.list-1?view=netframework-4.8ArrayListではObject型にキャストしてアクセスしていたが、L</t>…

IList

IListは、リストの定義を満たすための要件が定義されているインターフェース。IList Interface (System.Collections) | Microsoft Docsここからは継承して実装するのも大変なので使い方を簡単に。ArrayListはIListを継承してるので、 s = A s = B s = C s = …

ICollection<T>

ICollection<T>は、ジェネリクス版のICollection。https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.icollection-1?view=netframework-4.8IEnumerable<T>を継承している。追加の機能だけ実装する。 Addで1大きいサイズの配列を生成して、</t></t>…

IEnumerator<T>

IEnumerator<T>は、ジェネリクス版のIEnumerator。https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.ienumerator-1?view=netframework-4.8<T>のないIEnumeratorとIDisposableの各メンバを実装しないといけない。TestEnumeratorのコンスト</t></t>…

IEnumerable<T>

IEnumerable<T>は、ジェネリクス版のIEnumerable。 C#にジェネリクスが登場してからは<T>のないIEnumerableを使うことはあまりないだろう。https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.ienumerable-1?view=netframework-4.8 自分のメ</t></t>…

ICollection

ICollectionは、コレクションの定義を満たすための必須の要件が定義されているインターフェース。ICollection Interface (System.Collections) | Microsoft Docs コレクション概要 - アルゴリズムとデータ構造 | ++C++; // 未確認飛行 C C# のコレクション使…

MethodInfo.Invoke

MethodInfo.Invokeで、MethodInfoオブジェクトの指すメソッドは実行される。MethodInfo.Invoke(Object, Object[]) Method (System.Reflection) | Microsoft Docs 動的にDLLファイルのクラスメソッドを呼び出す (Reflectionを用いたアセンブリの動的呼び出し)…