2011-08-04 13 views
1

App_GlobalResourcesのファイルの変更をトリガーするスレッドを作成しています。これによりアプリケーションが再コンパイルされ、実行可能なスレッドがすべて破棄されます。 他のすべてのスレッドが実行されていない状態になるまで、他のスレッドを中止するこのスレッドを作成する必要があります。 (Hashtable)Application ["ThreadList"]にすべてのスレッドを登録しましたが、スレッドからアプリケーションにアクセスできないようです。何か案は?Asp.net C#:他のスレッドがスレッド内で実行されているかどうかを確認します。

答えて

2

私が知る限り、ASP.NETは再コンパイルする前に現在実行中のワーカースレッドを中止しません。要求のキューイングを開始し、AppDomainを再起動する前に既存の要求が処理を終了するのを待ちます。

更新:

あなたのリソースは、彼らがRESXファイルにハードコードされたべきではないよりも、毎日変更した場合。データベースまたは外部ファイルからそれらをロードする新しいリソースプロバイダを作成します。

+0

これは正しいです。基本的に、何も心配する必要はありません。 Asp.netは(スレッド上で実行される)現在のすべての要求を正常に終了してから、アプリケーションプールを再起動します。 – Andy

+1

私は、アプリケーションが再コンパイルする原因となるファイルを変更するたびに、「スレッドが中止されました」のようなスレッドから例外が発生し続けます。なぜですか? – Eilev

+0

これは非常に頻繁に起こる(間違っているかもしれない)何かであるとは想像できません....私の言いたいことは、これについても心配する必要はありますか?また、ASP.NETのスレッドを混乱させること(または、まったく)は、かすかな心のためのものではありません! –