C#
の上に作成されたマルチスレッドアプリケーションがあります。スレッドはWaitSleepJoin状態にあり、実行中ではありません
私のアプリケーションでは、2つのパネルを持つ1つのフォームがあります。
pnlSearch
pnlSlide
各々は、各スレッドによって制御される。
TH_Slide
TH_Search
TH_Slide
はForm_OnLoad
で呼び出されます。私はpnlSlide
の中に私のオブジェクトのすべての情報を表示できます。
while(true)
{
// do some infinite work to slide objects information.
Thread.Sleep(20000); // display for 20 secs.
}
pnlSearch
が非表示になり、マウスがフォーム内に移動するとき、これが処理される呼び出されたときTH_Search
表示されます。また、pnlSearch
の内部には、検索された情報を動的に表示するためのホルダーとしてオブジェクトがあります。
のtxtFilter
を入力し、私のデータベースから情報をロードしてUserControl
に表示すると、問題が発生します。
TH_Slide.ThreadState
は文句を言わない変更を行いWaitSleepJoin
なり、ひいてはもうpnlSlide
でスライド情報を実行していないでしょう。
注:クロススレッド操作は代理人を使用して処理されるため、エラーは発生しません。私のアプリケーションは現在、完全に
TH_Slide.IsBackground = true
TH_Slide.Priority = ThreadPriority.Highest
TH_Search.Priority = ThreadPriority.Normal
私はマルチスレッドプログラミングに新しいですし、私がいない完全にすることができますを設定することで取り組んでいる