quaggaster
3/9/2007 9:24:00 AM
Witam,
chcialbym zadac pytanie dotyczace przetwarzania wielowatkowego i
korzystania z klasy statycznej w C#. Otóz sytuacja wyglada
nastepujaco: kilka watków wykonywanych jest wspólbieznie, a kazdy z
nich co jakis czas uruchamia ta sama metode klasy statycznej. Metoda
ta (statyczna) przyjmuje pewne argumenty i zwraca wynik w oparciu o
porównanie parametrów z jakims polem prywatnym tej klasy -- oto
przyklad:
private static List<String> list = null;
(...)
public static Boolean Level(String Level1, String Level2)
{
return (list.IndexOf(Level1.ToUpper()) >=
list.IndexOf(Level2.ToUpper()));
}
Oczywiscie mozna dokonac w takiej metodzie synchronizacji (np. poprzez
lock), ale moje pytanie brzmi, czy w takim wypadku TRZEBA to zrobic?
Sama metoda NIE modyfikuje stanu zadnych elementów klasy, wiec wydaje
sie, ze synchronizacja nie bedzie konieczna, ale czy na pewno?
Szukalem na ten temat informacji w sieci, ale nie moglem znalezc
jednoznacznej odpowiedzi. Wykonalem takze kilka testów, które
pokazuja, ze taka metoda w przetwarzaniu wielowatkowym dziala
poprawnie -- chcialbym jednak miec pewnosc, dlatego pytam. Moze ktos
juz rozwazal takie wykonanie.
Prosze o rade i z góry dziekuje!
Pozdrawiam,
Norbert