尝试从Resources.Image读取或写入受保护的内存。

3

背景下,我使用一个DLL通过DMA从PCI-e总线中汇集数据。如果仅运行DLL而不更新状态,则可以运行数小时。

我收到以下异常:

尝试读取或写入受保护的内存。这通常是其他内存已损坏的迹象。

当我尝试从资源更改按钮图像时,我遇到了此错误。

代码:

statusButton.Image=Resources.Status_Ok;

或者

statusButton.Image=Resources.Status_Fail;

异常并不总是出现!

这个命令由定时器 (System.Timers.Timer) 触发。

1个回答

0

听起来你正在尝试从后台进程(即你的计时器)加载一些东西到你的UI中,这将始终尝试锁定你的主线程以进行绘制。你需要控制这个锁定,否则你将遇到锁定问题 - 特别是如果你正在与你的应用程序交互或者如果你有长时间运行的主线程操作。

查看后台工作线程以运行你的DLL - http://www.codeproject.com/Articles/841751/MultiThreading-Using-a-Background-Worker-Csharp - 这可能会解决你的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接