Articles of multithreading

C # Lazy Initialization && Course à initialiser?

Après avoir lu à propos de LazyInitializer que c’est: Il offre un autre mode d’initialisation qui doit être initialisé par plusieurs threads. voici un échantillon: Expensive _expensive; public Expensive Expensive { get // Implement double-checked locking { LazyInitializer.EnsureInitialized (ref _expensive,() => new Expensive()); return _expensive; } } Question 1 regarder : pourquoi #A dit que […]

Liaison asynchrone et requête LINQ bloquée

J’ai un contrôle d’ interface utilisateur qui prend Enumerable comme source de liaison. Mais jusqu’à ce que je définisse la source de liaison, je dois filtrer mon Enumerable origine. Je voudrais utiliser LINQ à cette fin comme ça: control.BindingSource = from var item in enumerable.Cast() where item.X == 1 select item; Voici un problème que […]

Télécharger plusieurs fichiers rapidement et efficacement (async)

J’ai tellement de fichiers que je dois télécharger. Donc, j’essaie d’utiliser la puissance des nouvelles fonctionnalités asynchrones comme ci-dessous. var streamTasks = urls.Select(async url => (await WebRequest.CreateHttp(url).GetResponseAsync()).GetResponseStream()).ToList(); var streams = await Task.WhenAll(streamTasks); foreach (var stream in streams) { using (var fileStream = new FileStream(“blabla”, FileMode.Create)) { await stream.CopyToAsync(fileStream); } } Ce que je crains à […]

Est-il prudent d’exécuter plusieurs fonctions DoWork sur un seul BackgroundWorker?

Je travaille avec une base de code établie et j’aimerais déplacer une partie du travail effectué vers un autre thread. La façon dont le code est actuellement structuré, j’aimerais faire quelque chose comme: var backgroundWorker = new BackgroundWorker(); backgroundWorker.DoWork += firstFunctionToDoSomeWork; backgroundWorker.DoWork += secondFunctionToDoSomeWork; backgroundWorker.RunWorkerCompleted += theWorkerCompletedFunction; backgroundWorker.RunWorkerAsync(); Je voudrais que les deux fonctions de […]

Multi-threading avec Linq to SQL

Je construis une application qui nécessite l’utilisation des threads internes de DataContext. Mon application continue de lancer des InvalidOperationException similaires aux suivantes: There is already an open DataReader associated with this Command which must be closed first ExecuteReader requires an open and available Connection. The connection’s current state is connecting Ces exceptions sont intermittentes. Voici […]

Problème de thread avec Monitor.Wait () et Monitor.Pulse ()

J’ai un scénario producteur-consommateur dans ASP.NET. J’ai conçu une classe Producer , une classe Consumer et une classe destinée à contenir les objects partagés et responsable de la communication entre Producer et Consumer, appelons-la Mediator . Parce que j’ai jeté le chemin d’exécution au démarrage (dans l’object parent) et qu’un thread a appelé Producer.Start() et […]

Pourquoi mon site ASP.NET agit-il avec un seul thread?

J’ai remarqué qu’un site ASP.NET s’exécutant dans IIS semble fonctionner lentement si une page est lente, j’ai donc configuré un test pour voir s’il fonctionnait comme s’il s’agissait d’un seul thread (c’est-à-dire si une requête de page fonctionne, tous les autres doivent attendre). J’ai créé une page très simple (pas de page maître, mais avec […]

Tuer / abandonner un thread avec une seule tâche géante (par exemple, requête SQL)

D’accord, Il semble y avoir beaucoup de discussions ici sur la terrible horreur de Thread.Abort () et sur la manière de contourner l’utilisation de Thread.Abort () dans votre code en ajoutant des contrôles de sortie dans votre boucle. Cela suppose que vous contrôliez la manière dont le travail est partitionné de manière suffisamment granulaire pour […]

Pourquoi ce programme ne va-t-il pas dans la boucle infinie en l’absence de la volatilité d’une variable d’état booléenne?

Je voulais comprendre quand exactement je dois déclarer une variable volatile. Pour cela, j’ai écrit un petit programme et m’attendais à ce qu’il passe en boucle infinie à cause de la volatilité manquante d’une variable de condition. Il n’est pas entré dans la boucle infinie et a bien fonctionné sans mot clé volatile. Deux questions: […]

WPF: comment invoquer une méthode dans un thread séparé avec un délai

J’ai une zone de TextBox que l’utilisateur peut entrer terme de recherche dedans. Sa liaison à ssortingng Term propriété de ssortingng Term dans mon view-model . Et je veux faire une requête de recherche lorsque son contenu a changé. Mais je veux faire la requête dans un fil séparé avec un délai . Par exemple, […]