プログラミング

C#

【C#】スレッドの終了を待つ(Thread.Join)

この記事では、スレッドの終了を待つサンプルコードを紹介します。 サンプルコード サブスレッドの Join メソッドを使用することで、サブスレッドの作業がすべて完了するまで、メインスレッドの実行がブロック(一時停止)されます。 using S...
C#

【C#】スレッドに引数を渡す2つの方法

C#でスレッドを使う際、スレッドのメソッドに引数を渡す方法を2つ紹介します。 ParameterizedThreadStart を使用するサンプルコード ParameterizedThreadStartを使用することで、スレッドメソッドに ...
C#

【C#】スレッドの処理の途中で外部からキャンセル終了する

スレッドの処理を外部から途中で終了させる方法を紹介します。 方法1:フラグを使用 フラグを使用してスレッドのループを制御し、外部からそのフラグを変更することでスレッドの実行を終了させる方法です。 using System; using Sy...
C#

【C#】スレッドのデッドロック:問題と対策

デッドロックは、複数のスレッドが互いに相手のリソースの解放を待っている状態で、どのスレッドも進行できなくなる問題です。ここでは、C#でデッドロックを起こすサンプルコードとその対策版を紹介します。 デッドロックが発生するサンプルコード 以下の...
C#

【C#】スレッド間のリソース共有: 問題と対策(lock ステートメント)

マルチスレッドプログラミングにおいて、スレッド間でリソースを共有する際、適切な同期処理を使用しないとデータの不整合や予期せぬバグが発生する可能性があります。この記事では、C#でスレッド間のリソース共有に関する問題発生と対策方法を紹介します。...
C#

【C#】スレッドで並列処理を行う

マルチスレッドプログラミングは、アプリケーションのパフォーマンスを向上させる強力な方法です。C#においては、比較的簡単にスレッドを作成して利用することができます。 サンプルコード 以下のサンプルコードは、2つのスレッドを並列実行させています...
C#

【C#】親プロセスのプロセスIDを取得する(祖父プロセスIDも)

バッチファイルで自身のプロセスIDを調べようと思うと確実な方法がないので、バッチファイルから呼び出されるコマンド側でプロセスIDが取得できないかと調べました。出来そうな方法が見つかったので紹介します。 サンプルコード 準備 プロジェクトの参...
バッチファイル

バッチファイルでフォルダの存在有無により処理を行う

バッチファイルで作業を自動化する際、指定されたフォルダが存在する場合、しない場合で処理を分岐することは、よくあると思います。本記事では、バッチファイル内でフォルダの存在確認をする方法を紹介します。 フォルダ存在確認のサンプルコード フォルダ...
バッチファイル

バッチファイルでファイルの存在有無により処理を分岐する

バッチファイルで作業を自動化する際、あるファイルが存在する場合、しない場合の処理を記述することは、よくあります。本記事では、バッチファイル内でファイルの存在確認をする方法を紹介します。 ファイル存在確認のサンプルコード ファイルの有無により...
バッチファイル

バッチファイルでコマンドの標準出力1行を変数に格納する

Windowsのバッチファイルは、処理の自動化を簡単に実現する便利なツールです。しかし、コマンドの実行結果を変数に格納し、それを後の処理で使用する方法は少し分かり辛いです。 この記事では、コマンドが1行だけの標準出力を行う場合の環境変数への...