これは非常に一般的な質問かもしれませんが、私は C# を初めて使用します。これを説明するか、例または説明への適切なリンクを教えてください。
C# Winform アプリケーションを設計したいと考えています。アプリケーションには、必要に応じてユーザー入力を収集するメイン フォームがあります。UI とともに、複雑で長時間実行される計算アルゴリズムが開発されます。計算の開始は、メイン フォームのボタンからトリガーされます。(CaculateClass.Start())
質問 1: CaculateClass のメソッド コール スタックのある時点で、CaculateClass は、計算を続行するためにユーザーからの追加入力が必要であることを検出します。
古代の C++ コンソール アプリケーションの時代では、次のようなことをしていたでしょう: cout << "Ask question"; cin >>答え;
C# で winforms を使用してこれを行うには、コール スタックのどこか深いところから UI に制御を渡し、入力を取得して、計算が中断された場所に戻りますか? それとも、CaculateClass をまったく別の方法で設計する必要がありますか?
質問 2 UI のフリーズを回避するために、多くの記事では、このような長時間実行される計算を別のスレッドに配置することを推奨しています。たとえば、BackgroundWorker() を使用します。
CaculateClass.Start() を BackgroundWorker で計算させた場合 -> ユーザー入力の収集はどのように機能しますか?
助けてくれてありがとう、CS