C#でスレッドにパラメータを渡す方法を解説
C#でスレッドにパラメータを渡す方法について、基本の手順からサンプルコードまで詳しく解説します。
スレッド操作の準備
スレッドを扱うには、まずコードに以下の名前空間を追加します。
using System.Threading;
スレッドの作成とパラメータの受け渡し
まず、C#で新しいスレッドを作成します。次のように、Threadクラスのコンストラクタにスレッドで実行するメソッド(ここではthreadDemo)を指定します。
Thread thread = new Thread(threadDemo);
続いて、Startメソッドの引数に渡したい値を指定することで、スレッドにパラメータを渡せます。
thread.Start(str);
この例で渡しているパラメータは以下の文字列です。
String str = "Hello World!";
サンプルコード
C#でスレッドにパラメータを渡す完全なサンプルコードを見てみましょう。ParameterizedThreadStartの仕組みにより、object型の引数を1つ持つメソッドをスレッド関数として利用できます。
using System;
using System.Threading;
namespace Sample {
class Demo {
static void Main(string[] args) {
String str = "Hello World!";
// 新しいスレッドを作成
Thread thread = new Thread(threadDemo);
// スレッドにパラメータを渡して開始
thread.Start(str);
}
static void threadDemo(object str) {
Console.WriteLine("スレッドに渡された値: " + str);
}
}
}実行結果
Value passed to the thread: Hello World!
ポイントまとめ
- スレッドにパラメータを渡すには、Startメソッドの引数に値を指定します。
- スレッド関数側はobject型の引数を1つ受け取るシグネチャである必要があります。
- 複数の値を渡したい場合は、独自のクラスや構造体を定義してオブジェクトとして渡すのが一般的です。
- 受け取ったobject型の値は、必要に応じて元の型へキャストして使用します。
-
C#で文字列の大文字・小文字を変換する方法(ToLower/ToUpperメソッド)
C#では、ToLower()メソッドとToUpper()メソッドを使うことで、文字列の大文字と小文字を簡単に変換できます。この記事では、具体的なコード例とともに、それぞれの使い方をわかりやすく解説します。 大文字から小文字へ変換する(ToLowerメソッド) たとえば、次のような大文字のみの文字列があるとします。 str = AMIT; この大文字の文字列を小文字に変換するには、ToLower()メソッドを使用します。 Console.WriteLine(Converted to LowerCase : {0}, str.ToLower()); サンプルコード 以下は、C#で文字列の大文字を小
-
C#で現在のスレッドの状態(IsAlive)を確認する方法
C#で現在実行中のスレッドの状態を確認するには、IsAlive プロパティを使用します。このプロパティは、スレッドが起動されており、まだ終了していない場合に True を返します。スレッド情報の取得まず、CurrentThread プロパティを使って、現在実行中のスレッドの情報を取得します。Thread thread = Thread.CurrentThread;次に、取得したスレッドオブジェクトに対して IsAlive プロパティを参照することで、スレッドの状態を確認できます。thread.IsAliveサンプルコード以下は、C#で現在のスレッドの状態を確認する完全なコード例です。スレッドに