Articles of multithreading

Fuite de mémoire du fil

J’essaie de localiser une fuite de mémoire dans un programme C # plus volumineux qui génère plusieurs threads. Au cours de ce processus, j’ai créé un petit programme parallèle que j’utilise pour tester certaines choses élémentaires et j’ai découvert un comportement que je ne comprends vraiment pas. class Program { static void test() { } […]

Pourquoi Task.WaitAny ne lance-t-il pas une exception?

Dans le code suivant, “Inside catch block” n’est jamais imprimé. La “dernière ligne” est cependant imprimée. Pourquoi S’il vous plaît aider. Task task1 = Task.Factory.StartNew(() => { throw new Exception(“some exception”); }); try { Task.WaitAny(new Task[] { task1 }); } catch(Exception e) { Console.WriteLine(“Inside catch block.”); } Console.WriteLine(“Final line.”);

“AsyncFuture ” ou quoi? Future obtenu dans un fil de fond – est-ce un motif?

J’aimerais que certains travaux soient effectués dans un thread d’arrière-plan aussi simple que de créer une variable future pour celui-ci, puis de demander ultérieurement la valeur calculée. En pseudo-code C #: AsyncFuture asyncFuture = new AsyncFuture(FuncToCalculateValue); //do some other work, or draw UI if(asyncFuture.NoErrorsHappened){ int realResult = asyncResult.Value; } Je peux implémenter ce type moi-même, […]

Pourquoi le code multi-thread C # suivant ne renvoie-t-il pas zéro alors qu’il le fait dans le débogueur?

class Program { private static volatile int value; public static void Increment() { for (int i =0; i <100000; i++) { value++; } } public static void Decrement() { for (int j =0 ; j < 100000; j++) { value–; } } public static void ThreadTest() { value = 0; var incrementThread = new Thread(Increment); […]

Quand mon minuteur sonne… Fuite de mémoire .NET

J’ai une timer .NET System.Threading.Timer qui clique toutes les 60 secondes et introduit une fuite de mémoire à chaque tick. A chaque tick du timer, le code alloue un object IDisposable (appelé SocketsMessageConnector) … mais je le dispose correctement. J’ai exécuté .NET Memory Profiler et toutes les 60 secondes, une nouvelle instance de ma classe […]

Sécurité du fil CultureInfo

J’ai une application multithread qui parsing du texte et doit utiliser English Culture Info pour parsingr les nombres de ce texte. Donc, je ne veux pas créer EngCulture à chaque fois que j’appelle la fonction d’parsing. Actuellement, je passe EngCulture en tant que paramètre mais je ne suis pas satisfait de cela. Je veux définir […]

La tâche parent Task.ContinueWith () n’attend pas que la tâche enfant se termine

Puisque je comprenais la Task dans le contexte d’une tâche nestede, je ne comprends vraiment pas cela. Pourquoi la 3ème impression avant la 2ème impression? Même si j’ai utilisé Task.WaitAll(t) , il Task.WaitAll(t) 3ème ligne avant la 2ème ligne. Code: public static void Main() { Task t = new Task( () => { Thread.Sleep(2000); Console.WriteLine(“1st […]

Threading et SqlFileStream. Le processus ne peut pas accéder au fichier spécifié car il a été ouvert dans une autre transaction.

J’extrais le contenu de la table Files in SQL File. Le code suivant fonctionne si je n’utilise pas Parallel. Je reçois l’exception suivante lorsque je lis simultanément un stream de fichiers SQL (parallèle). Le processus ne peut pas accéder au fichier spécifié car il a été ouvert dans une autre transaction. TL; DR: Lors de […]

C #: Comment mettre en pause le fil et continuer lorsqu’un événement survient?

Comment mettre le fil en pause et continuer lorsqu’un événement survient? Je veux que le fil continue lorsque le bouton clique. Quelqu’un dit que thread.suspend n’est pas la bonne façon de mettre le thread en pause. Puis une autre solution?

Application Windows Forms – Interface utilisateur lente / ne répondant pas

Dupliquer possible: Application WinForm C # – L’UI se bloque lors d’une opération longue J’ai créé une application Windows Form à l’aide de C # et de .NET Framework 4.0. J’ai un problème où, pendant que le programme fonctionne, je ne peux pas me déplacer par la fenêtre et si je le minimise, je ne […]