每当用户通过组合键更改键盘布局时,以下程序会重复锁定。如果通过托盘小程序更改键盘布局,它不会锁定。将布局更改为英文时,它不会锁定。Task
如果从不执行,它不会锁定。
XAML:
<StackPanel>
<TextBox></TextBox>
<Button Click="Button_Click">Click me</Button>
</StackPanel>
C#:
private void Button_Click(object sender, RoutedEventArgs e)
{
Task.Factory.StartNew(() =>
{
var visual = new DrawingVisual();
using (var context = visual.RenderOpen())
{
}
});
}
在点击按钮之前,我可以随意切换键盘布局。单击后,程序会在第一次尝试切换布局时锁定。
Alt重要的是,此错误仅在通过++或Shift++ (和,但不是)切换布局时发生。2CtrlShift231
DrawingVisual
避免在后台线程上使用已经太晚了。这已成为产品不可或缺的核心功能。任何关于如何解决这个问题的想法都非常受欢迎。
此错误在 .NET 4.0、Win7 32 位和 64 位上重现。
赏金:这个bug影响的百分比很少,但它确实影响的人每次习惯性地通过快捷键更改键盘布局时都会不断导致锁定(相应的数据丢失)。我想要一种解决方法,它不会改变某些视觉效果在单独的线程上呈现的事实。