Klasa Thread

0

Może ktoś wyjaśnić po polsku o co chodzi w tej klasie? Thread - nitka, nić
Coś czytałem po angielsku, ale nie wiem czy dobrze rozumiem.
Podajcie jakieś przykłady zastosowania tej klasy jak możecie.

0

Klasa Thread = wątek
Przykład zastosowania? Funkcje, które coś robią a wątku się używa żeby program się nie "zwieszał" czyli jest sobie funkcja pobierająca coś z internetu, gdy wywołujesz tą funkcję program czeka aż ta funkcja się zakończy a przy użyciu wątku funkcja pracuje "w tle" a Ty możesz podziwiać stan pobierania :D

0

W internecie znajdziesz mnóstwo informacji i przykładów w języku polskim. Wystarczy poszukać. Kilka przykładów:
[1] http://support.microsoft.com/default.aspx/kb/815804/pl
[2] http://www.codeguru.pl/article-332.aspx
[3] http://www.if.pw.edu.pl/~ludwik/threads.html

0

ooo pyszotka ;-P zabieram się za te linki ^^

PS: środkowy link nie działa...

Niech ktoś wyjaśni dlaczego w...

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;

namespace Threading_002
{
    class Program
    {
        static void Main(string[] args)
        {
            ThreadStart thSt = new ThreadStart(UpdateCount);
            Thread[] threads = new Thread[10];
            for (int t = 0; t < 10; t++)
            {
                threads[t] = new Thread(thSt);
                threads[t].Start();
            }
            foreach (Thread t in threads)
            {
                t.Join();
            }
            Console.WriteLine("Count: {0}", Counter.Count);
            Counter.Count = 0;
            for (int i = 0; i < 10000; i++)
            {
                Counter.Count += 1;
                //Interlocked.Increment(ref Counter.Count);
            }
            Console.WriteLine("Count: {0}", Counter.Count);
            Console.ReadKey();
            

        }

        static void UpdateCount()
        {
            for (int i = 0; i < 10000; i++)
            {
                Counter.Count += 1;
                //Interlocked.Increment(ref Counter.Count);
            }
        }
    }

    public class Counter
    {
        public static int Count;
    }
}

w pierwszym count się wyświetla większa liczba niż w drugim ?

Logicznie powinno być tak samo...

0

Pierwszy count. 10 wątków - 10000 obrotów każdy.
Drugi count - jedna pętla 10000 obrotów.

Jak dla mnie to jest tak jak być powinno.

0

aha no dzięki bo ja jeszcze nie rozumiem tych Treadów ^^
ale czasami wartość jest np 98324 i dlaczego tak jest?

Zastosowanie metody Interlocked też nic nie daje..

1 użytkowników online, w tym zalogowanych: 0, gości: 1