Co to jest Mutex i semafor w języku C#? Gdzie musimy wdrożyć?Co to jest Mutex i semafor wC#? gdzie musimy wdrożyć?
Jak możemy z nimi pracować wielowątkowo?
Co to jest Mutex i semafor w języku C#? Gdzie musimy wdrożyć?Co to jest Mutex i semafor wC#? gdzie musimy wdrożyć?
Jak możemy z nimi pracować wielowątkowo?
Powinieneś zacząć od MSDN.
Generalnie używa się tylko Mutex w procesach, np. jeśli masz zasób, który musi współdzielić wiele aplikacji, lub jeśli chcesz utworzyć aplikację z pojedynczą instancją (tzn. dozwolona jest tylko jedna kopia).
Semafor pozwala ograniczyć dostęp do określonej liczby równoczesnych wątków, dzięki czemu można mieć na przykład maksymalnie dwa wątki wykonujące określoną ścieżkę kodu na raz.
+1 dla MSDN. To RTFM-goto dla wszystkiego w przestrzeni Windows API. –
Semafory mogą być również używane do synchronizacji pomiędzy procesami. "Nazwane systemowe semafory są widoczne w całym systemie operacyjnym i mogą być używane do synchronizowania działań procesów": https://msdn.microsoft.com/en-us/library/ system.threading.semaphore (v = vs.110) .aspx –
Możesz chcieć sprawdzić wyciąg blokujący. Może obsługiwać większość zadań wątek synchonization w C#
class Test {
private static object Lock = new object();
public function Synchronized()
{
lock(Lock)
{
// Only one thread at a time is able to enter this section
}
}
}
Oświadczenie blokada realizowana jest poprzez wywołanie Monitor.Enter i Monitor.Exit. Jest to równoznaczne z następującym kodem:
Monitor.Enter(Lock);
try
{
// Only one thread at a time is able to enter this section
}
finally
{
Monitor.Exit(Lock);
}
bym zacząć od czytania to: http://www.albahari.com/threading/part2.aspx#_Synchronization_Essentials a następnie wzmocnić go z linki MSDN bobbymcr delegowanych.
Fajny artykuł ... – Ricibob
to zbyt duży temat do odpowiedzi na IMHO. Czy masz jakieś szczególne problemy? – Naveen
Naveen, proszę zasugerować mi jakieś rozłożone pytanie, abym mógł zagłębić się w to .. –