c# 我在执行循环时主程序就卡死,如何用线程处理的方法解决(新手恳请老师傅们指点指点)

luka_26 2019-11-01 01:37:40
...全文
1312 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zrd122767 2019-11-20
  • 打赏
  • 举报
回复
引用 楼主 a1150175748的回复:
你这是递归,还是无限递归,不卡死才奇怪了
58662877 2019-11-10
  • 打赏
  • 举报
回复
用BackgroundWorker组件吧。
小大飞 2019-11-07
  • 打赏
  • 举报
回复
学习一下,主线程负责ui的渲染,主线程的任务特别耗时,就会导致无法处理ui任务,ui就会卡死。
加油馒头 2019-11-07
  • 打赏
  • 举报
回复
改成这样 Task.run(()=>button1.PerformClick);
xiaoxiangqing 2019-11-06
  • 打赏
  • 举报
回复
耗时的要放在多线程里
我不懂电脑 2019-11-06
  • 打赏
  • 举报
回复
后台线程可以多线程并行
FainSheeg 2019-11-05
  • 打赏
  • 举报
回复
改成while(zhuantai)
luka_26 2019-11-05
  • 打赏
  • 举报
回复
引用 12 楼 xian_wwq 的回复:
耗时的操作不能放在主线程中,卡死就是因为主线程被阻塞了。 要将处理函数放到单独线程中去, 有一点需要注意,如果线程中有与UI交互的处理, 那就得用委托或匿名方法。
谢谢,我已经解决了。后台线程可以多线程并行嘛?
xian_wwq 2019-11-05
  • 打赏
  • 举报
回复
耗时的操作不能放在主线程中,卡死就是因为主线程被阻塞了。 要将处理函数放到单独线程中去, 有一点需要注意,如果线程中有与UI交互的处理, 那就得用委托或匿名方法。
qq_34057056 2019-11-04
  • 打赏
  • 举报
回复
声明一个委托 去异步执行那段耗时的循环就行了
luka_26 2019-11-04
  • 打赏
  • 举报
回复
引用 9 楼 Bridge_go 的回复:
你这无限递归了吧,放在线程里也不行
额,我确实把他放线程里执行的时候报错说非法占用线程。那该怎么解决比较好
Bridge_go 2019-11-04
  • 打赏
  • 举报
回复
你这无限递归了吧,放在线程里也不行
以有涯求无涯 2019-11-04
  • 打赏
  • 举报
回复
Thread th = new Thread(方法名);
th.isbackground = true;
th.start();
Eason0807 2019-11-04
  • 打赏
  • 举报
回复
你这是递归,还是无限递归,不卡死才奇怪了
  • 打赏
  • 举报
回复
引用 4 楼 a1150175748 的回复:
引用 1 楼 glb21 的回复:
耗时进程要放到单独线程里
如何整理
就是new Thread()出来
luka_26 2019-11-01
  • 打赏
  • 举报
回复
引用 1 楼 glb21 的回复:
耗时进程要放到单独线程里
如何整理
luka_26 2019-11-01
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
执行循环,循环在哪里,你贴出的代码并没有循环
那个状态为true时执行button1.PerformClick不算吗
threenewbee 2019-11-01
  • 打赏
  • 举报
回复
执行循环,循环在哪里,你贴出的代码并没有循环
glb21 2019-11-01
  • 打赏
  • 举报
回复
耗时进程要放到单独线程里

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧