Articles of multithreading

Le verrou se bloque lorsqu’il est appelé depuis l’interface utilisateur vers System.Threading.Thread.

EDIT: s’il vous plaît voir l’historique des questions, pour la question inchangée afin de ne pas invalider les commentaires. Je clique sur le bouton qui exécute certains codes et crée un fil (System.Threading.Thread). Lorsque je reclicke le bouton qui commence le processus, il se bloque et se bloque. Quelle pourrait être la raison? public partial […]

Manière performante de détecter des immuables?

J’ai un utilitaire conçu pour faire passer des objects dans notre système. S’agissant d’un environnement multithread, l’utilitaire crée une copie complète de chaque object transmis pour éviter tout problème de sécurité des threads. Je travaille sur la transition de notre système pour utiliser des objects immuables afin d’éliminer le besoin de cette copie. Je me […]

thread notifiant une autre exception d’une exception

ThreadA génère ThreadB. ThreadB lève une exception. Comment ThreadA peut-il connaître cette exception? using System; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(ssortingng[] args) { ThreadStart threadDelegate1 = new ThreadStart(MyClass1.DoThis); Thread ThreadA = new Thread(threadDelegate1); ThreadA.Start(); Thread.Sleep(100000); // this thread is doing something else here, sleep simulates it } } class MyClass1 […]

Exécuter x nombre de requêtes Web simultanément

Notre société dispose d’un service Web auquel je souhaite envoyer des fichiers XML (stockés sur mon lecteur) via mon propre client HTTPWebRequest en C #. Cela fonctionne déjà. Le service Web prend en charge 5 demandes synchrones simultanément (je reçois une réponse du service Web une fois que le traitement sur le serveur est terminé). […]

Toute relation entre la priorité du processus et la priorité du pool de threads (C #)

Je comprends que le processus en cours d’exécution modifie / ne peut pas modifier la priorité du pool de threads, mais la priorité d’une tâche particulière exécutée sur le pool de threads est-elle facturée à un prix correspondant à celui du processus d’appel? En d’autres termes, toutes les tâches du pool de threads sont-elles exécutées […]

Attente Occupée avec des Threads

En gros, je dois être occupé à attendre que du code HTML apparaisse sur une page Web. J’ai créé le code suivant pour m’attendre: public void ExecuteBusyWaitThreads() { foreach (Canidate canidate in allCanidates) { Thread newThread = new Thread(delegate() { BusyWait(canidate); }); newThread.Start(); } } public bool BusyWait(Canidate canidate) { //hit that url, and wait […]

contextswitchdeadlock

Lors du débogage de mon programme dans VS 2008, j’ai rencontré l’erreur suivante: Le CLR n’a pas pu passer du contexte COM 0x34fc1a0 au contexte COM 0x34fc258 pendant 60 secondes. Le thread qui possède le contexte / appartement de destination est probablement en train de faire une attente sans pompage ou de traiter une opération […]

Chargement correct d’un document sur un fil d’arrière-plan

Parmi les applications que j’ai écrites et dont j’ai hérité, j’ai toujours envie de mieux comprendre les problèmes de sécurité des threads liés au chargement de données sur un thread d’arrière-plan. Supposons que j’ai une application Windows Forms simple, à fenêtre unique, avec un bouton “Charger” et un BackgroundWorker : Le gestionnaire de Click du […]

Quand tous les threads sont terminés

C’est ma première véritable tentative d’utilisation du multithreading. Je veux savoir comment je peux savoir quand tous mes groupes de tâches sont exécutés: for (int i = 0; i < taskGroups.Count(); i++) { ThreadStart t = delegate { RunThread(taskGroups[i]); }; new Thread(t).Start(); } if(allThreadsComplete){ //??? } Toute aide serait très appréciée Addenda: ThreadStart[] threads = […]

Comment écrire des méthodes statiques correctes – multithread safe

Je suppose que les méthodes statiques ne doivent pas être écrites comme le premier extrait, ou est-ce que je me trompe? public static class ExtensionClass { private static SomeClass object1; private static SsortingngBuilder sb; private static ssortingng DoSomething() { sb.AppendLine(object1.SomeValue); } public static ssortingng ExtensionMethod(this HtmlHelper helper, SomeClass _object1) { object1 = _object1; sb = […]