未处理 CrossThreadMessagingException

搞不懂现代人 2010-12-08 10:16:10
C# 回调函数时出错

frmMain.AlarmFunc = new IMOSSDK.SDKCallBackFunc(frmMain.AlarmCallBackFunc);
ulRet = IMOSSDK.IMOS_RegCallBackPrcFunc(ref IMOSSDK.stLoginInfo.stUserLoginIDInfo, frmMain.AlarmFunc);


public void AlarmCallBackFunc(ulong ulProcType, IntPtr pParam)
{
//Update();
try
{
if (this.InvokeRequired)
{
IMOSSDK.SDKCallBackFunc me = new IMOSSDK.SDKCallBackFunc(AlarmCallBackFunc);
this.BeginInvoke(me, ulProcType, pParam);
return;
}
else
{ //showlog("告警");
IMOS_SDK.SDK.AS_ALARMPUSH_UI_S pstAlarmPush;

if (null == pParam)
{
//log
return;
}

try
{
switch ((IMOS_SDK.SDK.tagCallBackProcType)ulProcType)
{
case IMOS_SDK.SDK.tagCallBackProcType.PROC_TYPE_DEV_STATUS: //设备状态,对应结构 : AS_STAPUSH_UI_S
break;
case IMOS_SDK.SDK.tagCallBackProcType.PROC_TYPE_ALARM: //告警,对应结构 : AS_ALARMPUSH_UI_S
//pstAlarmPush = (IMOS_SDK.SDK.AS_ALARMPUSH_UI_S)Marshal.PtrToStructure(pParam, typeof(IMOS_SDK.SDK.AS_ALARMPUSH_UI_S));
//pstAlarmPush = (IMOS_SDK.SDK.AS_ALARMPUSH_UI_S)pParam;
//AlarmDAL.AddAlarmLog(ref pstAlarmPush, this);
break;
default:
break;
}
}
catch (Exception ex)
{
showlog(ex.Message);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}
...全文
246 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧