SlideServe
Menu
Préférences
© SlideServe · v2026

práce s vlákny a aplikační domény v .NET Framework aplikacích

iain avatar
8 diapositives · 223 Views · Oct 24, 2014

práce s vlákny a aplikační domény v .NET Framework aplikacích. Architektura technologie .NET Jan Martinovi č, FEI - Katedra Informatiky. Třída Thread. Vytváří a kontroluje vlákna, nastavuje priority a získává jejich stav Vlastnosti Priority ThreadState IsAlive IsBackground

práce s vlákny a aplikační domény v .NET Framework aplikacích - slide 1
01 / 8práce s vlákny a aplikační domény v .NET Framework aplikacích
1 / 17

Télécharger la présentation

práce s vlákny a aplikační domény v .NET Framework aplikacích
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. práce s vláknya aplikační domény v .NET Framework aplikacích Architektura technologie .NET Jan Martinovič, FEI - Katedra Informatiky

  2. Třída Thread • Vytváří a kontroluje vlákna, nastavuje priority a získává jejich stav • Vlastnosti • Priority • ThreadState • IsAlive • IsBackground • Statické vlastnosti • CurrentThread • Metody • Start • Sleep • Join • Interrupt • Abort • ResetAbort

  3. Delegát ThreadStart 1/2 classWork { privateint data; public int Data { get { return data; } set { data = value; } } public static voidDoWork() { Console.WriteLine("Statická metoda"); } public voidDoMoreWork() { Console.WriteLine("Instanční metoda. Data = {0}", Data); } }

  4. Delegát ThreadStart 2/2 • class Test • { • static voidMain() • { • ThreadStartthreadDelegate = newThreadStart(Work.DoWork); • ThreadnewThread = newThread(threadDelegate); • newThread.Start(); • // Od .NET 2.0 nemusíme vytvářet instanci ThreadStart • Work w = newWork(); • w.Data = 42; • threadDelegate = w.DoMoreWork; • newThread = newThread(threadDelegate); • newThread.Start(); • } • }

  5. Synchronizace zamykáním • Příkaz lock je používán pro synchronizaci vláken, které přistupují ke společným zdrojům • lock nastavuje zámek na objekt • ObjectthisLock = newObject(); • lock (thisLock) • { • // Criticalcodesection • }

  6. lock1/2 • public classLockExample • { • privatereadonlystringword; • public LockExample(stringword){this.word = word} • public void RunT0() • { • lock (Console.Out) • { • for (int i = 0; i < 10; i++) • { • Console.Write(word); • Thread.Sleep(100); • } • } • } • }

  7. lock2/2 • public classExample • { • public static voidMain() • { • LockExample le1 = new LockExample("a"); • LockExample le2 = new LockExample("b"); • Thread t1 = newThread(le1.RunT0); • Thread t2 = newThread(le2.RunT0); • t1.Start(); • t2.Start(); • } • }

  8. Třída Monitor • Statické metody • Enter • TryEnter • Exit • Wait • Pulse • PulseAll lock (obj) { … } // je kompilováno jako Monitor.Enter(obj) try { … } finally { Monitor.Exit(obj) }