J'ai la liste des fichiers (widgets) dont j'ai besoin pour travailler. Je veux le faire de manière asynchrone afin que mon interface reste réactive. Je veux mettre à jour l'interface utilisateur avec le progrès. Voici mon code prototype. Comment puis-je accomplir cela? Je suppose que j'ai besoin d'utiliser le filetage, mais je ne veux pas non plus couvrir tous les threads en même temps, un par un va bien.Comment programmer le traitement asynchrone de widgets?
void Process()
{
var documents = GetDocuments();
foreach(document in documents)
{
ProcessDocument(
document,
status => this.TextBox.Text += status);
}
}
void ProcessDocument(Document document, Action<string> onCompleted)
{
}
BackgroundWorker est déconseillé en faveur de la programmation par tâches – LMB
@LMB Où avez-vous lu cela? La page MSDN sur BackGroundWorker ne mentionne pas cela. En passant, je suis d'accord avec vous que TPL est la meilleure approche pour Frameworks 4 et plus. –
@PanosRontogiannis Je vais essayer de trouver la page exacte, mais je me souviens que c'était dans MSDN, dans l'une des pages à propos de Tâches namespace une utilisation de la tâche. – LMB