C#

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

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

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

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

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

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

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

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

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

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

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

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

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

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

【C#】System.InvalidOperationException: コレクションが変更されました

C#プログラミングにおいて、コレクションの操作中にそのコレクションを変更しようとすると、「System.InvalidOperationException: コレクションが変更されました。列挙操作は実行されない可能性があります。」というエラ...
C#

【C#】指定時間待つ処理を作成する方法

C#では、System.Threading 名前空間の Thread.Sleep メソッドを使用して、簡単にスレッドの実行を指定した時間だけ停止させることができます。この記事では、指定時間待つ簡単なサンプルコードを紹介します サンプルコード...
C#

【C#】Process is terminated due to StackOverflowException.

スタックオーバーフローとは スタックオーバーフローは、プログラムの実行スタックにあるメモリが限界を超えてしまうエラーです。通常、再帰関数の無限呼び出しにより発生します。関数が自分自身を呼び出すと、その実行情報がスタックに追加され、このプロセ...