作業が必要なファイル(ウィジェット)のリストがあります。インターフェイスの応答性を維持できるように、非同期で実行したいと思います。進捗状況に応じてUIを更新したい。これが私のプロトタイプコードです。どうすればこれを達成できますか?スレッドを利用する必要があると思いますが、すべてのスレッドを同時にスパンしたくないので、1つずつ問題ありません。
void Process()
{
var documents = GetDocuments();
foreach(document in documents)
{
ProcessDocument(
document,
status => this.TextBox.Text += status);
}
}
void ProcessDocument(Document document, Action<string> onCompleted)
{
}