たとえば、ソフトウェアのインストール中など、いくつかのステッププロセスがあるとします。UIプログラミングのコールバックの代替手段はありますか?
各ステップはテキストボックスを表示し、ユーザーが「次へ」ボタンをクリックするのを待ちます。
それを行うための標準的な方法は、このようなコールバックを持っていることです。この技術は、コードはかなり読めなくなります
process
{
Dialog1() // Will call callback2 when closed
}
callback2()
{
Dialog2() // Will call callback3 when closed
}
callbak3()
{
Dialog3() // Will call callback4 when closed
}
あなたは 除算に持っているように、ステップの多くがあるときは、各連続に加工コールバック関数( コンテキストを1つから別のものに保存することはもちろんありません)。
これを行うのが簡単な方法はありますか?理想的には、プロセスは 次のように読んでください。これで
process()
{
Dialog1()
callback1() // stop method until closed
Dialog2()
callback2() // stop method until closed
Dialog3()
callback3() // stop method until closed
}
問題は、あなたがUIスレッドを止めることができないということです。どのようなアイデアや回避策も非常に高く評価されます。
PS:このCやObjective Cの中で
ANSWER
を動作させるようにコルーチンマーティンBへの感謝を発見した後、私は、このページ見つけた:https://stackoverflow.com/posts/4746722/editをして、このコードを使用して終了しました:
機能的な構造を持たないため、私はCを嫌いです。これは関数型言語で完全に表現することができます(例:javascript)を使って*継続*。 –