Практическое применение для Диспетчера. DisableProcessing?

Run s будет установлено в свойство TextBlock.Inlines, в котором есть только getter, но нет setter. Таким образом, вы не можете установить Run в стиле.

Вы можете использовать два элемента TextBlock и связать MyBoolean со свойством Visibility из них:

<Grid>
    <Grid.Resources>
        <local:BoolToVisConverter x:Key="btoviscnv"/>
    </Grid.Resources>
    <TextBlock Text="text3" Visibility="{Binding MyBoolean, Converter={StaticResource btoviscnv}, ConverterParameter='not'}"/>
    <TextBlock Visibility="{Binding MyBoolean, Converter={StaticResource btoviscnv}}">
        <Run>text1</Run>
        <Run Foreground="#FF1372D3" Text="{Binding MyBinding}"/>
        <Run>text2</Run>
    </TextBlock>
</Grid>

public class BoolToVisConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var bvalue = (bool)value;
        if ((parameter as string)?.Equals("not") ?? false)
        {
            bvalue = !bvalue;
        }
        return bvalue ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException("It's one way converter");
    }
}
9
задан bitbonk 5 January 2009 в 04:29
поделиться

1 ответ

Согласно MSDN:

Отключение диспетчера, обрабатывающего, является передовым методом, который предназначается для устранения шанса несвязанной повторной входимости.

Таким образом, Вы делаете некоторую работу над тем же потоком Dispatcher выполняется на, но Вы не хотите это события обработки, пока Вы делаете ту работу. Я думаю, что действительно подходящая точка:

Эффекты отключения обработки следующие:

* CLR locks will not pump messages internally.

Если я понимаю это правильно, это означает, что можно безопасно заблокировать и не иметь события насоса диспетчера в результате (который мог бы вызвать нежелательную повторную входимость).

5
ответ дан 3 November 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: