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.
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
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
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...
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.
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..