【发布时间】:2019-07-23 18:23:48
【问题描述】:
我正在修复现有 C# 项目中的一些错误。 我使用 Visual Studio 2008 和 3.5 .NET Framework。
应用程序使用表单,并且应用程序的生命周期正常工作。我还没有做任何改变,但客户最近开始出现奇怪的行为。 可以第一次使用该应用程序没有问题,但是如果一个表单关闭并且我们打开另一个表单,则该表单中的对象将被处置。 该代码用于 PDA,我们有一个用于 Scan 的 EventHandler。 我相信这很奇怪,因为代码没有任何改变。 也许是一些框架错误?
我试图完全消除 Closing 事件的事件处理程序,但同样的错误发生了。 更改表单的处理方式。
表单创建
FormTEntreUbicaciones form = new FormTEntreUbicaciones(Movements.TREntreUbicaciones);
form.ShowDialog();
form.Dispose();
事件创建
if (Device.GetOSType2() == Device.OSType.WinMobile){
hDcd = new DecodeHandle(DecodeDeviceCap.Exists | DecodeDeviceCap.Barcode);
DecodeRequest reqType = (DecodeRequest)1 | DecodeRequest.PostRecurring;
dcdEvent = new DecodeEvent(hDcd, reqType, this);
dcdEvent.Scanned += new DecodeScanned(dcdEvent_Scanned);
}
表单应该是打开的,并且其中的所有对象都不应该被释放
例外:
System.ObjectDisposedException was unhandled
Message="ObjectDisposedException"
ObjectName=""
StackTrace:
at System.Windows.Forms.Control.InvokeHelper(Delegate method, Boolean fSynchronous, Object[] rgobjArgs)
at System.Windows.Forms.Control.Invoke(Delegate method)
at Datalogic.API.DecodeEvent.WaitForScan()
有什么建议吗? 谢谢!
【问题讨论】:
-
@EhsanMohammadi 请不要将异常更改为
qoute...它的可读性不如code
标签: c# .net visual-studio-2008