c# – 由Environment.FailFast崩溃的WPF

我正在研究为Kiosk(触摸屏)构建的 WPF应用程序.我们为自己构建虚拟键盘.

一个屏幕我们使用带有TextBox的DataGrid控件列出一些项目(最多4个项目).虚拟键盘显示焦点(这就是它的构建方式).

当我们随机选择不同的项目时,应用程序崩溃而不会到达通用异常处理程序.此问题在触摸屏上可重复,但在常规屏幕中不可重复.事件日志显示如下,

Application: CashNGo.WPF.exe
Framework Version: v4.0.30319
Description: The application requested process termination through System.Environment.FailFast(string
message).
Message: Unrecoverable system error.
Stack:
   at System.Environment.FailFast(System.String)
   at MS.Internal.Invariant.FailFast(System.String,System.String)
   at MS.Internal.Invariant.Assert(Boolean,System.String)
   at System.Windows.Documents.TextStore.VerifyTextStoreConsistency()
   at System.Windows.Documents.TextStore.GrantLock()
   at System.Windows.Documents.TextStore.GrantLockWorker(LockFlags)
   at System.Windows.Documents.TextStore.RequestLock(LockFlags,Int32 ByRef)
   at MS.Win32.UnsafeNativeMethods+ITextStoreAcpsink.OnSelectionChange()
   at System.Windows.Documents.TextStore.OnSelectionChanged()
   at System.Windows.Documents.TextSelection.System.Windows.Documents.ITextRange.NotifyChanged(Boolean,Boolean)
   at System.Windows.Documents.TextRangeBase.EndChange(System.Windows.Documents.ITextRange,Boolean,Boolean)
   at System.Windows.Documents.TextSelection.System.Windows.Documents.ITextRange.Select(System.Windows.Documents.ITextPointer,System.Windows.Documents.ITextPointer)
   at System.Windows.Controls.TextBox.Select(Int32,Int32)
   at System.Windows.Controls.TextBox.set_CaretIndex(Int32)
   at Common.Controls.softKeyboard.<.cctor>b__1c(System.Windows.Controls.TextBox)
   at System.Windows.Input.DelegateCommand`1[[System.__Canon,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]].Execute(System.__Canon)
   at Common.Controls.softKeyboard+<>c__displayClass5.<SoftKeyboardFocus_Changed>b__0()
   at System.Windows.Threading.dispatcher.Invoke(System.Action,System.Windows.Threading.dispatcherPriority,System.Threading.CancellationToken,System.TimeSpan)
   at System.Windows.Threading.dispatcher.Invoke(System.Action,System.Windows.Threading.dispatcherPriority)
   at Common.Extensions+<>c__displayClass1.<DelayedInvoke>b__0(System.Object,System.EventArgs)
   at System.Windows.Threading.dispatcherTimer.FireTick(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate,System.Object,Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object,System.Delegate,Int32,System.Delegate)
  at System.Windows.Threading.dispatcherOperation.InvokeImpl()
   at System.Windows.Threading.dispatcherOperation.InvokeInSecurityContext(System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Object)
   at System.Windows.Threading.dispatcherOperation.Invoke()
   at System.Windows.Threading.dispatcher.ProcessQueue()
   at System.Windows.Threading.dispatcher.WndProcHook(IntPtr,IntPtr,Boolean
ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr,Boolean ByRef)
   at MS.Win32.HwndSubclass.dispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate,System.Delegate)
   at System.Windows.Threading.dispatcher.LegacyInvokeImpl(System.Windows.Threading.dispatcherPriority,System.TimeSpan,Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr,IntPtr)
   at MS.Win32.UnsafeNativeMethods.dispatchMessage(System.Windows.Interop.MSG ByRef)
   at System.Windows.Threading.dispatcher.PushFrameImpl(System.Windows.Threading.dispatcherFrame)
   at System.Windows.Threading.dispatcher.PushFrame(System.Windows.Threading.dispatcherFrame)
   at System.Windows.Threading.dispatcher.Run()
   at System.Windows.Application.Rundispatcher(System.Object)
   at System.Windows.Application.RunInternal(System.Windows.Window)
   at System.Windows.Application.Run(System.Windows.Window)
   at System.Windows.Application.Run()
   at CashNGo.WPF.App.Main()

我做了一些搜索,找到了http://social.msdn.microsoft.com/Forums/vstudio/en-US/dfbd2526-8953-4ce8-97c2-43246fd251c0/wpf-framework-crashing-on-setting-foxus-in-textbox?forum=wpf,这是完全相同的例外.

任何建议都会有所帮助.

解决方法

关闭一个名为的Windows服务.
Tablet PC Input Service

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...