我不确定它还没有实现,我希望它是。但我知道.Net程序员应该在后台线程中手动运行耗时的任务。
因此,每次我们处理一些UI事件时,我们都知道这需要一些时间,我们也明白这会挂起UI线程和我们的应用程序。然后我们使所有这些背景工作并处理回调等等。
所以我的问题是:
在某种语言/平台中是否存在一种机制,它会在后台自动运行耗时的任务并自行完成所有相关工作?因此,我们只编写用于处理特定UI事件的代码,并且此代码将以某种方式被检测为耗时且将在后台执行。
如果没有,那么为什么?
答案 0 :(得分:1)
在Haskell(和其他函数语言)中已经完成了很多工作,以使其自动在其他线程中执行操作。但是Haskell并不是最简单的GUI编程语言。
答案 1 :(得分:0)
您可以查看Quartz for .Net之类的内容。它是一个作业调度程序,但可用于在后台线程中运行耗时的进程。
答案 2 :(得分:0)
在这方面正在进行积极的研究,但这是一个复杂的话题。例如,请参阅MS Research的{{3}}项目。这是一个基于消息传递的DSL,目标是CLR。
但是,我不知道任何特定于UI的语言。大多数大型框架(包括.NET)都有许多工具可以帮助在后台运行任务。
答案 3 :(得分:0)
没有(据我所知),原因是计算机不知道某项任务需要多长时间才能完成。毫无疑问 - 程序员可以在特定情况下设计计算机算法来确定某个特定任务的预期持续时间 - 但是目前还没有办法让计算机确定任意任务需要多长时间。这是一个非常重要的计算机科学问题的结果,称为Halting Problem。