Ответ 1
Эта проблема не будет [t] рассмотрена в следующей версии WPF. -WPF.
Я предполагаю, что они слишком заняты WinRT и WPF на заднем плане.
Следующая программа блокирует воспроизведение воспроизводимо всякий раз, когда пользователь меняет раскладку клавиатуры с помощью комбинации клавиш. Он не блокируется, если раскладка клавиатуры изменяется с помощью апплета. Он не блокируется при изменении макета на английский. Он не блокируется, если Task
никогда не выполняется.
XAML:
<StackPanel>
<TextBox></TextBox>
<Button Click="Button_Click">Click me</Button>
</StackPanel>
С#:
private void Button_Click(object sender, RoutedEventArgs e)
{
Task.Factory.StartNew(() =>
{
var visual = new DrawingVisual();
using (var context = visual.RenderOpen())
{
}
});
}
Прежде чем нажать кнопку, я могу настроить раскладки клавиатуры, как мне заблагорассудится. После щелчка программа блокирует первую попытку переключения макетов.
Важно отметить, что эта ошибка возникает только в том случае, если макеты переключаются через Alt + Shift + 2 или Ctrl + Shift + 2 (и 3, но не 1).
Его путь, слишком поздно, чтобы избежать использования DrawingVisual
для фоновых потоков. Это стало неотъемлемой основной особенностью продукта. Любые идеи о том, как обойти это, очень приветствуются.
Эта ошибка воспроизводится на .NET 4.0, Win7 32-разрядной и 64-разрядной версии.
Bounty: эта ошибка затрагивает несколько людей с точки зрения процента, но те, которые она затрагивает, будут постоянно вызывать блокировку (с соответствующей потерей данных) каждый раз, когда они обычно меняют раскладку клавиатуры через ярлык. Мне нужна работа, которая не изменяет тот факт, что некоторые визуальные эффекты отображаются в отдельном потоке.
Эта проблема не будет [t] рассмотрена в следующей версии WPF. -WPF.
Я предполагаю, что они слишком заняты WinRT и WPF на заднем плане.