最近在开发一个winform的桌面,用于显示各种推送数据,后台有一个线程使用while(true)不停的更新界面的UI控件上的数据。我只有一个窗口主线程和一个更新数据的子线程,不存在死锁的问题。
但是问题在于刚开始好好的,数据不断的跳啊,更新啊,过了大概半小时整个窗口就卡死了,窗口关闭按钮都不能用。我用VS调试程序模式也会这样,但就是不报错,这是什么问题啊?
为了让子线程能访问到控件,窗口我设了CheckForIllegalCrossThreadCalls = false;会有关系吗?
你可以创建一个线程去等newThread,然后执行继续的代码.
或者newThread结束后往主线程发送一个消息,主线程收到后继续执行代码.
代码贴一下,你这么说别人怎么看
任务管理器看下进程用户对象,到1w个用户对象就会卡死,之前遇到过一次
Thread t = new Thread(o => Thread.Sleep(500));
t.Start(this);
while (t.IsAlive)
{
//防止UI假死
Application.DoEvents();
}