2010-11-18 5 views
5

メインスレッドが新しいスレッドt1を生成していると仮定して、t1上で実行されるコードはメインスレッドのスレッドID(C#を使用)をどのように見つけることができますか?.NET親スレッドIDを取得する方法はありますか?

編集:
私は新しいスレッドの作成を制御しません。だから私はスレッドにパラメータを渡すことはできません。

ありがとうございました。

+2

基本的に、Win32でのプロセス内のすべてのスレッドは等しく、「メインスレッド」はありません。 .NETはバックグラウンドスレッドの洗練を追加しますが、まだ "メインスレッド"はありません。 – Richard

+0

@リチャードは訂正してくれてありがとう。 –

答えて

9

できません。

しかし、あなたは考えるかもしれない:親スレッド

  • からスレッドIDを持つ新しいスレッドの名前は、あなたがそれを起動するメソッドにコンストラクタを作成します

    1. プレフィックスからスレッドIDが必要です親
  • 0

    プロパティを持っているかどうかわかりませんが、新しいパラメータをスレッドに追加して渡すことができます。それは私が考えることができる最も簡単な方法でしょう...

    2

    2つのスレッドがあり、2番目のスレッドがバックグラウンドスレッドである場合は、Thread.IsBackground propertyを読んでバックグラウンドスレッドを削除してプロセス内のすべてのスレッドを列挙できます。非常にきれいではありませんが、おそらくあなたが必要なのは?

    foreground and background threads on MSDNについて詳しく読むことができます。

    関連する問題