Je me demande ce que signifient les nouvelles fonctions asynchrones C # 5.0 pour les extensions Rx – Reactive? Cela ne semble pas être un remplacement mais ils semblent se chevaucher – Task et IObservable . EDIT: Tâche vs IObservable: quand utiliser quoi?
La documentation MSDN semble indiquer que les fonctions async et await conviennent aux tâches liées aux E / S tandis que Task.Run doit être utilisé pour les tâches liées au processeur. Je travaille sur une application qui effectue des requêtes HTTP pour récupérer des documents HTML, puis les parsing. J’ai une méthode qui ressemble à […]
J’essaie de me TaskCompletionSource sur la TPL, les nouvelles fonctionnalités async / await dans C # 5 et les mystères de TaskCompletionSource . Une chose qui n’est pas claire pour moi est de savoir quand utiliser SetResult , SetException et SetCancel par rapport à TrySetResult , TrySetException et TrySetCancel . Voici ce que MSDN a […]
Je travaille sur un système dans lequel plusieurs objects client sont supposés implémenter une fonction particulière via une interface, et je souhaite que cette fonction s’exécute de manière asynchrone avec les continuations (les implémentations doivent être liées aux E / S et assurez-vous que tous les objects client remplissent cette fonction dès que possible). J’utilise […]
Cela fonctionne très bien (signifie comme prévu) en C # 5.0: var actions = new List(); foreach (var i in Enumerable.Range(0, 10)) { actions.Add(() => Console.WriteLine(i)); } foreach (var act in actions) act(); Imprime de 0 à 9. Mais celui-ci affiche 10 fois 10 fois: var actions = new List(); for (var i = 0; […]
J’ai copié ci-dessous le code de ce lien. Mais lorsque je comstack ce code, je reçois un point d’entrée qui ne peut pas être marqué avec le modificateur “async” . Comment puis-je rendre ce code compilable? class Program { static async void Main(ssortingng[] args) { Task getWebPageTask = GetWebPageAsync(“http://msdn.microsoft.com”); Debug.WriteLine(“In startButton_Click before await”); ssortingng webText […]
J’essaie de comprendre comment attendre le travail asynchrone en C # et une chose me déroute beaucoup. Je comprends que toute méthode qui utilise un mot-clé en attente doit être marquée avec async. D’après ce que je comprends, lorsqu’une ligne avec mot-clé en attente est atteinte, le code en dessous de cette ligne n’est pas […]
J’essaie de remplacer mes anciens appels «fire-and-forget» par une nouvelle syntaxe, en espérant plus de simplicité et cela semble m’échapper. Voici un exemple class Program { static void DoIt(ssortingng entry) { Console.WriteLine(“Message: ” + entry); } static async void DoIt2(ssortingng entry) { await Task.Yield(); Console.WriteLine(“Message2: ” + entry); } static void Main(ssortingng[] args) { // […]
Dans .NET 4.5 / C # 5, IReadOnlyCollection est déclaré avec une propriété Count : public interface IReadOnlyCollection : IEnumerable, IEnumerable { int Count { get; } } Je me demande si ICollection n’aurait pas aussi bien pu implémenter l’ IReadOnlyCollection : public interface ICollection : IEnumerable, IEnumerable, *IReadOnlyCollection* Cela aurait signifié que les classes […]
J’ai le code de test suivant: void Button_Click(object sender, RoutedEventArgs e) { var source = new CancellationTokenSource(); var tsk1 = new Task(() => Thread1(source.Token), source.Token); var tsk2 = new Task(() => Thread2(source.Token), source.Token); tsk1.Start(); tsk2.Start(); source.Cancel(); try { Task.WaitAll(new[] {tsk1, tsk2}); } catch (Exception ex) { // here exception is caught } } void Thread1(CancellationToken […]