线程处于WaitSleepJoin状态,不再运行
本文关键字:不再 再运行 状态 WaitSleepJoin 线程 | 更新日期: 2023-09-27 18:04:11
我在C#
之上创建了一个多线程应用程序。
在我的应用程序中,我有一个表单和两个面板。
-
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
textBox和UserControl
对象作为动态显示搜索信息的持有人。
现在的问题是,当我在pnlSearch
的txtFilter
中键入并从我的数据库加载信息并将其显示到UserControl
时。
TH_Slide.ThreadState
变成WaitSleepJoin
,不再运行,因此pnlSlide
中的幻灯片信息不会做任何更改
注意:跨线程操作使用委托处理,因此不会抛出任何错误。
通过设置
-
TH_Slide.IsBackground = true
-
TH_Slide.Priority = ThreadPriority.Highest
-
TH_Search.Priority = ThreadPriority.Normal
我是一个多线程编程的新手,我不能完全理解为什么这个算法解决了我的问题。