Je travaille sur un projet avec des exigences de performance de peek, nous avons donc besoin de regrouper plusieurs opérations (par exemple persister les données dans une base de données) pour plus d'efficacité.Connaissez-vous une bibliothèque Bulked/Batched Flows pour C#
Cependant, je veux notre code pour maintenir un flux facile à comprendre, comme:
input = Read();
parsed = Parse(input);
if (parsed.Count > 10)
{
status = Persist(parsed);
ReportSuccess(status);
return;
}
ReportFailure();
La fonction que je cherche ici est automatiquement ont persist() se produire dans vracs (et ergo de manière asynchrone), mais se comporte comme s'il était synchrone (l'utilisateur devrait bloquer jusqu'à ce que l'action en bloc soit terminée). Je veux que l'implémenteur soit capable d'implémenter Persist (ICollection). Je me suis penché sur la programmation par flux, avec laquelle je ne suis pas très familier. J'ai vu une bibliothèque pour fbp en C# here, et j'ai joué un peu avec Microsoft Workflow Foundation, mais j'ai l'impression que les deux sont trop exigeants pour ce dont j'ai besoin. Que utiliseriez-vous pour mettre en œuvre un comportement de flux gonflé? Notez que je voudrais obtenir un code qui est exactement comme ce que j'ai écrit (simple à comprendre & debug), donc les solutions qui impliquent le rendement ou la configuration afin de connecter les flux les uns aux autres sont inadéquates pour mon but. Aussi, chaining n'est pas ce que je cherche - je ne veux pas d'abord construire une chaîne et ensuite l'exécuter, je veux un code qui ressemble à un simple flux ("Do A, Do B, si C alors faites D ").
Pas vraiment. Supposons que j'ai quelques fonctionnalités de base de PersistBulk() qui accepte une grande quantité d'éléments et les persiste (indépendamment de l'implémentation de bas niveau). Je veux exposer une méthode PersistSingleItem() synchrone. Votre réponse n'est pas vraiment pertinente, merci. – ripper234