Articles of thread safety

Réaliser une collection «thread-safe» de la collection «modifier-en-énumérer»

Je souhaite créer une collection thread-safe pouvant être modifiée lors de l’énumération. L’exemple de classe ActionSet stocke les gestionnaires d’ Action . Il a la méthode Add qui ajoute un nouveau gestionnaire à la liste et la méthode Invoke qui énumère et appelle tous les gestionnaires d’action collectés. Les scénarios de travail envisagés incluent des […]

Les écritures asynchrones sur un thread de socket sont-elles sécurisées?

Considérez la méthode Socket.BeginSend() . Si deux threads de pool de threads devaient appeler cette méthode simultanément, leurs messages respectifs se mélangeraient-ils l’un à l’autre ou la classe socket empêche-t-elle cela?

Création de verrous dynamics à l’exécution dans ASP.NET

Les hypothèses suivantes sont-elles valides pour ce code? Je mets quelques informations de fond sous le code, mais je ne pense pas que ce soit pertinent. Hypothèse 1: Puisqu’il s’agit d’une seule application, je suppose que celle-ci sera gérée par un processus unique. Ainsi, les variables statiques sont partagées entre les threads et la déclaration […]

S’agit-il d’une implémentation Singleton valide, paresseuse et thread-safe pour C #?

J’ai implémenté un pattern Singleton comme ceci: public sealed class MyClass { … public static MyClass Instance { get { return SingletonHolder.instance; } } … static class SingletonHolder { public static MyClass instance = new MyClass (); } } De googler pour les implémentations C # Singleton, il ne semble pas que ce soit une […]

Est-ce que renvoyer un IEnumerable thread-safe?

J’ai un projet Visual Studio 2008 C # .NET 3.5 pour lequel je souhaite disposer d’un pool d’objects Foo thread-safe. public class FooPool { private object pool_lock_ = new object(); private Dictionary foo_pool_ = new Dictionary(); // … public void Add(Foo f) { lock (pool_lock_) { foo_pool_.Add(SomeFooDescriminator, f); } } public Foo this[ssortingng key] { […]

Sécurité des threads des initialiseurs statiques en C #

Tout le monde dit que les initialiseurs statiques sont thread-safe, mais je suis inquiet pour un détail particulier Disons que j’ai static class MyStaticClass { public static readonly object myField = MyOtherClass.GetNewObject(); } static class MyOtherClass { public static object GetNewObject() { /* arbitrary code that returns a new object */ } } Lequel des […]

Ramifications de CheckForIllegalCrossThreadCalls = false

J’ai récemment mis à jour une application de VS2003 à VS2008 et je savais que je serais confronté à une foule d ‘”Opération cross-thread non valide: Contrôle’ myControl ‘accessible à partir d’un thread autre que le thread sur lequel il a été créé” Je gère ce problème dans Ce que je crois est la bonne […]

J’ai besoin de créer une variable statique thread-safe en C # .Net

ok, c’est un peu plus compliqué que la question. class A { static int needsToBeThreadSafe = 0; public static void M1() { needsToBeThreadSafe = RandomNumber(); } public static void M2() { print(needsToBeThreadSafe); } } Maintenant, j’ai besoin que, entre les appels M1 () et M2 (), «needsToBeThreadSafe» rest Thread Safe.

Le multithreading ASP.NET a-t-il un impact sur la classe singleton Structuremap?

Dans mon projet ASP.NET MVC, j’ai une classe instanciée via Structuremap et configurée en tant que singleton. Étant donné qu’ASP.NET est insortingnsèquement multithread et que le modèle Singleton n’est pas threadsafe par défaut, cela posera-t-il des problèmes? J’ai rencontré un problème où plusieurs instances étaient renvoyées pour une classe configurée en tant que Singleton. Ce […]

Contrôle du filetage et du navigateur Web

Je suis très nouveau dans le filetage. Je commence un fil comme ça: Thread t_main; t_main = new Thread(main_building_stuff); t_main.Start(); Et à un moment donné, je veux que main_building_stuff récupère des données d’une page Web chargée dans un contrôleur de navigateur Web dans le fil principal. Je le fais avec ce morceau de code: HtmlElement […]