- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当非 UI 线程尝试将其输出附加到 RichTextBox
时,会发生难以跟踪的异常主线程中的 UI 控件。
此异常随机发生,主要是在线程快速连续调用此方法时。它甚至发生在 2 个非 UI 线程中。
下面是AppendLog方法的代码。它位于主 UI 的 Form 类中。我生成 2 个线程并将此方法作为 Action<string> logDelegate
传递给它们
我什至有同步对象。
public void AppendLog(string message)
{
try
{
if (this.InvokeRequired)
{
this.Invoke(new Action<string>(this.AppendLog), message);
}
else
{
lock (_logSyncRoot)
{
if (rtbLog.TextLength > 100000)
rtbLog.ResetText();
rtbLog.AppendText(message);
rtbLog.ScrollToCaret();
}
}
}
catch (Exception ex)
{
Logger.LogException(ex);
}
}
System.AccessViolationException:试图读取或写入 protected 内存。这通常表明其他内存已损坏。
at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
at System.Windows.Forms.Control.DefWndProc(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.TextBoxBase.WndProc(Message& m)
at System.Windows.Forms.RichTextBox.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, Int32 wParam, Object& editOle)
at System.Windows.Forms.TextBoxBase.ScrollToCaret()
at MyApp.UI.OfflineAnalyzer.AppendLog(String message) in D:\MyApp\Code\Charting\OfflineAnalyzer.cs:line 339
最佳答案
在这种情况下,最简单的情况是维护一个 Queue<string> queue;
例如,如果您有消息列表。随意向队列中添加值。在主窗体线程中,使用计时器组件并在提取值时锁定队列,例如lock (queue) {rtbLog.AppendText(queue.Dequeue());}
.
关于c# - RichTextBox.ScrollToCaret 中出现 AccessViolation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438493/
此 WPF 应用以 .NET 3.5 为目标,并使用 Visual Studio 2010 的 4.0 工具构建(csc.exe 版本为 4.0.30319.1)。 我不确定我看到的这个异常是怎么回事
这个问题已经有答案了: error in Delphi loadlibrary() (1 个回答) 已关闭10 年前。 我正在尝试在我的 Delphi 项目中加载一个库,该库可以位于两个位置。因此,要
我有一个问题。我正在写入日志文件,但是当我写入时应用程序抛出: **** 中发生类型为“System.AccessViolationException”的未处理异常 附加信息:试图读取或写入 prot
我有一个 Windows 窗体,上面有一些数字(此时只有一个数字)并定期刷新它们(数字是随机生成的)。更新过程与应用程序在一个单独的线程中进行,因此表单可以接收用户单击按钮、调整窗口大小等事件。主要方
当非 UI 线程尝试将其输出附加到 RichTextBox 时,会发生难以跟踪的异常主线程中的 UI 控件。 此异常随机发生,主要是在线程快速连续调用此方法时。它甚至发生在 2 个非 UI 线程中。
我想使用 LockBits 方法更快地比较相似图像,如下所示 using System; using System.Drawing; using System.Drawing.Imaging; usi
我目前正在研究一种解决方案,使错误更易于调试。 所以我有一个已经定义好的 main 并且用户需要定义 wrappermain 来代替 main 的使用: int main(int ac, char**
在各种异步 TCP 操作期间,我不断收到未处理的 AccessViolationException。该异常仅出现在内置函数的反汇编窗口中System.Threading._IOCompletionCa
我正在开发 Windows Phone 8.1 通用应用程序并遇到以下问题。 该应用程序有许多 View 及其相应的 Caliburn.Micro ViewModel,其中两个包含一个 MapCont
我在我的应用程序中使用了第三方工具。在某些系统上,我收到 System.AccessViolation 错误。虽然,通过代码我无法重现该问题。但在生产环境中它有时会重现。 我对下面的代码有疑问 pub
我的表单上有一个 AxWMPLib.AxWindowsMediaPlayer。当我关闭表单时,我收到“尝试读取或写入 protected 内存。这通常表明其他内存已损坏。”异常(exception)。
文件中存在类型为 SECURITY_IDENTIFIER 结构的对象。我需要从此结构中获取所有者 SID。为此,我调用 GetSecurityDescriptorOwner WinAPI 函数并创建
我正在创建 box2d 多边形,我想在将夹具附加到主体的方法之外创建夹具,但是当我这样做时,我遇到了访问冲突。 我已经逐步完成了代码,box2d 肯定正在获取 fixture 对象。 当我在方法内将夹
到目前为止,我可以追踪我在 cocos2dx 应用程序中遇到的每一个错误/崩溃,但现在我觉得自己很笨。我有一个 CCSprite 指针数组,我想做的是在玩家得分为 x 时从缓存中更改它的显示帧。 所有
我在函数中设置两个 XMMATRIX** 类型的变量时遇到了一些问题。函数原型(prototype)如下所示: bool ViewportFactory::CreateViewport(CanvasH
如何在 try-catch 块中捕获 AccessViolation 异常: 这是下面的代码: public static BP GetBloodPressure(string vendorid, s
我在尝试使用 Delphi(Turbo Delphi 2006)程序中用 C++ 编写的 DLL 时遇到了一个奇怪的问题。 当我从命令行运行 Delphi 程序(见下文)时,一切正常。另外,当我在没有
我正在尝试运行以下代码 TCHAR* str1 = TEXT("C:\\Program Files\\Internet Explorer;"); const TCHAR* del = TEXT
我在从 C# 调用 C DLL 时遇到问题 C 函数是(我没有 c 头文件或一个很好的规范:( ) int knr12_read ( char *kn12, char *ik9, char *wok,
我尝试使用 Visual Studio 2013 为 x64 构建我的 Win32 API 项目。但是路由的 WindowProc 回调无法正常工作。我将 SetWindowLongPtr/GetWi
我是一名优秀的程序员,十分优秀!