我使用WPF
开发了delegates and event handler
Kiosk应用程序。我按照http://csharpindepth.com/Articles/Chapter2/Events.aspx的教程进行操作,一切正常。
但是当我将它部署到Win7 32 Bit
平台上的测试设备时,我遇到了一些问题并且发现事件监听器的原因是在事件被触发后没有立即收到任何信号。大约需要30秒到120秒,然后才会收到信号。
通过一些测试,我发现问题只发生在应用程序完成80到90次成功交易之后。
我检查了Windows事件查看器,发生问题时没有出现任何错误。
我进行了一些测试并获得了不同的结果:
1.在70左右的交易中重新启动应用程序,但问题仍然存在
2.重新启动整个PC 约70次交易,当天不再出现问题。
当事件被触发时,操作系统在后台实际上做了什么?操作系统级别处理的事件是否有任何配额?
以下代码:
取款机类(fooClass)
声明代理和事件
public delegate void NotifyStatusEventHandler(CmsMode mode, bool isError, string sRemark);
public event NotifyStatusEventHandler NotifyStatus;
发布活动
this.NotifyStatus(CmsMode.Deposit_Amount_Changed, false, _inputAmount);
在执行此代码之前,我记下了时间。
应用程序中的代码
订阅活动
fooClass foo = new fooClass();
foo.NotifyStatus += new fooClass.NotifyStatusEventHandler(CmsEventListener);
事件监听器
void CmsEventListener(CmsMode mode, bool isError, string sRemark)
{
switch (mode)
{
case CmsMode.Deposit_Amount_Changed:
...(Update UI and others)
'I did logged down time after application receive signal'
break;
...(others cases)
}
}
是否有任何原因导致此问题或无论如何我都可以针对此问题进行调试?