【发布时间】:2018-03-30 14:34:23
【问题描述】:
是否可以在 C# 应用程序中运行线程,循环执行某些任务,即使主 gui 进程完全死锁,挂起,表单无法刷新,看起来像冻结,对用户没有反应?
在这种应用程序状态下是否有可能运行且正确工作的线程,或者唯一的方式是另一个进程?
Windows、c# winform 应用程序。
.NET FRAMEWORK 3.5(不更高)
【问题讨论】:
-
是的,反正是短期内。如果应用程序挂起,Windows 将意识到它没有处理消息泵并将进程标记为“挂起”并要求您终止它。
-
为什么主应用程序首先会“挂起”?异步编程的思路之一不就是停止GUI挂吗?
-
您甚至可以循环执行任务并让 GUI 死锁/冻结 使用不同的线程!对我来说闻起来像是 XY 问题。
-
我需要它来进行测试和学习。假设主应用程序有定时器,这个定时器检查可以在几分钟后返回的硬件设备或无限期挂起死锁而不返回状态(我知道应该有线程而不是定时器,但我想用定时器测试它以用于学习目的),即使这个主应用程序计时器挂起(并且计时器在 gui 进程中运行)我的线程无论如何都会工作,比如写入日志等?
-
@itsme86 我该怎么做?
标签: c# .net winforms concurrency parallel-processing