SynchronizationContext
ma właściwość o nazwie IsWaitNotificationRequired
. W tym celu numer docs ma następujące znaczenie:Co to jest parametr SynchronizationContext.IsWaitNotificationRequired?
Określa, czy wymagane jest powiadomienie o oczekiwaniu.
true, jeśli wymagane jest powiadomienie o oczekiwaniu; w przeciwnym razie false.
O Boże, to wyjaśnia.
Czym dokładnie jest to "powiadomienie o oczekiwaniu" i kiedy/dlaczego byłoby to wymagane/niewymagane? Czy jest to IsWaitNotificationRequired
coś w stylu Control.InvokeRequired
, czy jest to coś innego?
Ta odpowiedź może być pomocna: http://stackoverflow.com/a/5109784/245183 –
@OndrejTucny, nie jestem pewien, co zrobić z tą odpowiedzią ... Czy to oznacza, że pozwala określić, który WinAPI wywołania 'Monitor.Enter' i' Monitor.Exit' faktycznie używają do oczekiwania na blokadę? Co się dzieje, gdy 'IsWaitNotificationRequired' ma wartość false? –
Wewnętrzna metoda WaitHelper() jest kluczem, wywołuje kod oczekiwania na uchwyt wewnątrz CLR, który jest bezpieczny dla pojedynczych mieszkań z gwintem COM. Pompuje pętlę wiadomości, że wątkiem jest STA, aby zapewnić, że oczekiwanie nie spowoduje zakleszczenia. WPF tego potrzebuje. Przejrzyj MsgWaitForMultipleObjects(). –