代码之家  ›  专栏  ›  技术社区  ›  Hun1Ahpu

如何在后台自动运行?

  •  2
  • Hun1Ahpu  · 技术社区  · 14 年前

    我不确定它是否还没有实现,我希望它是。但我知道在.Net中,程序员应该在后台线程中手动运行耗时的任务。

    因此,每当我们处理一些UI事件时,我们知道这需要一些时间,我们也知道这将挂起UI线程和我们的应用程序。然后我们做所有这些后台工作,处理回调或其他什么。

    所以我的问题是:

    在某些语言/平台中,是否有一种机制可以自动在后台运行耗时的任务,并自行完成所有相关工作?所以我们只需编写代码来处理特定的UI事件,这段代码就会被检测为耗时的,并在后台执行。

    4 回复  |  直到 14 年前
        1
  •  1
  •   Kristopher Johnson    14 年前

    Haskell(和其他函数式语言)已经做了很多工作,使它能够在其他线程中自动执行任务。但是Haskell不是最简单的GUI编程语言。

        2
  •  0
  •   davek    14 年前

    你可以看看 Quartz for .Net . 它是一个作业调度程序,但可以用于在后台线程中运行耗时的进程。

        3
  •  0
  •   Reed Copsey    14 年前

    这方面正在进行积极的研究,但这是一个复杂的课题。例如,请参见 Axum 项目由微软研究。它是一个基于消息传递的DSL,目标是CLR。

    但是,我不知道任何特定于UI的语言。大多数大型框架(包括.NET)都有很多工具来帮助后台运行任务。

        4
  •  0
  •   Mike Dinescu    14 年前

    目前还没有(据我所知),这是因为计算机无法提前知道某项任务需要多长时间才能完成。不要犯错误——程序员可以在特定情况下设计一种计算机算法来确定某个特定任务的预期持续时间——但目前还没有办法让计算机确定任意任务将花费多长时间。这是一个非常重要的计算机科学问题的结果,称为 Halting Problem .

    推荐文章