2

まだ実装されていないかどうかはわかりませんが、実装されることを願っています。しかし、.Net プログラマーはバックグラウンド スレッドで時間のかかるタスクを手動で実行する必要があることを知っています。

そのため、何らかの UI イベントを処理するたびに、これには時間がかかることを理解しており、UI スレッドとアプリケーションがハングすることも理解しています。そして、このすべてのバックグラウンドを機能させ、コールバックなどを処理します。

だから私の質問は:

一部の言語/プラットフォームには、時間のかかるタスクをバックグラウンドで自動的に実行し、関連するすべての作業を自動的に実行するメカニズムがありますか? したがって、特定の UI イベントを処理するためのコードを作成するだけで、このコードは何らかの形で時間がかかるものとして検出され、バックグラウンドで実行されます。

存在しない場合、その理由は何ですか?

4

4 に答える 4

1

Haskell(および他の関数型言語)では、他のスレッドで自動的に処理を実行するために多くの作業が行われてきました。しかし、Haskellは最も簡単なGUIプログラミング言語ではありません。

于 2010-04-18T18:45:06.210 に答える
0

Quartzfor.Netのようなものを見ることができます。これはジョブスケジューラですが、バックグラウンドスレッドで時間のかかるプロセスを実行するために使用できます。

于 2010-04-18T18:45:03.327 に答える
0

この分野では活発な研究が行われていますが、それは複雑なトピックです。一例として、 MSResearchによるAxumプロジェクトを参照してください。これは、CLRを対象としたメッセージパッシングベースのDSLです。

ただし、UI固有の言語については知りません。ほとんどの大規模なフレームワーク(.NETを含む)には、バックグラウンドでタスクを実行するプロセスを支援するためのツールがたくさんあります。

于 2010-04-18T18:45:35.433 に答える
0

(私が知る限り)ありません。その理由は、コンピューターが特定のタスクの完了にかかる時間を事前に知らないためです。間違いはありません-特定の場合にプログラマーが特定のタスクの予想期間を決定するためにコンピューターアルゴリズムを考案することができます-しかし現時点では、任意のタスクにかかる時間をコンピューターに決定させる方法は知られていません。これは、停止性問題と呼ばれる非常に重要なコンピュータサイエンスの問題の結果です。

于 2010-04-18T18:45:49.700 に答える