2009-03-27 2 views
2

バックグラウンドスレッドのコンテキストにいるとき。バックグラウンドスレッドからフォアグラウンドスレッドを検索

Thread.IsBackground == true 

このバックグラウンドスレッドを呼び出すフォアグラウンドスレッドを見つける方法はありますか?あなたの助け

の更新のための

ありがとう:作成されたスレッドが背景と(ワークフロー財団ランタイムインサイド)スレッドプールによって処理されます。私は各バックグラウンドスレッド内のメインスレッドから参照を追加する方法がありません。スレッドプールからフォアグラウンドスレッドを見つける方法はありませんか?

答えて

7

このような関係はありません。 スレッドは、別のバックグラウンドスレッドを含む新しいスレッドを作成できます。新しいスレッドが作成された後は、作成中のスレッドと新しいスレッドとの間には関係がありません。どのスレッドが新しいスレッドを作成したのかを知る必要がある場合は、その情報をThreadStartに渡す必要があります。

EDIT:スレッドプールスレッドの場合、コードが実行されるまでには、何らかの方法であなたがタスクとして指定したと仮定します。いくつかの情報を利用できるようにする必要がある場合(スレッドIDであれ他のものであれ)、それをそのタスクのコンテキストに入れる必要があります。

+0

スレッドがスレッドプールされている場合は、 – alexl

+0

私はあなたがそれについて何を知りたいのか分かりません。本当に必要な場合は、現在のタスクを作成したスレッドを状態として渡すことができます。なぜこの情報が最初に必要なのですか? –

+0

私はnhibernateセッションを扱っており、セッションはスレッドによって提供されなければなりません。だから私は、ワークフロースレッドとすべての彼の活動のための1つのセッションを持ってみてください。トランザクションはワークフローの作成前に開始され、ワー​​クフローの最後にコミットされるためです。 (しかし、これは同じセッションを意味します) – alexl

関連する問題