为了账号安全,请及时绑定邮箱和手机立即绑定

事件 EventHandler是否已注册问题。

事件 EventHandler是否已注册问题。

C#
白板的微信 2018-07-27 13:07:29
1:申明事件        public event EventHandler<ReplaceMaterietChangedEventArgs> ReplaceMaterietChanged;2:注册事件        public void RegisterMateriet()         {             frmMain.GetInstance.ReplaceMater.Value.ReplaceMaterietChanged -= ReplaceMaterietChanged;             frmMain.GetInstance.ReplaceMater.Value.ReplaceMaterietChanged += ReplaceMaterietChanged;         }在不借助第3方变量的情况下 如何知道frmMain.GetInstance.ReplaceMater.Value.ReplaceMaterietChanged 已经注册了事件呢?因为RegisterMateriet在某个动作触发时候才执行注册。这个动作可能会多次触发 而我又不想第一次load的时候 就注册。
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

int flag=0;

        public void RegisterMateriet()
        {

  if(Interlocked.CompairExchange(ref flag,1,0)==0)
            {

    //..register your event

    }
        }


查看完整回答
反对 回复 2018-07-30
?
呼唤远方

TA贡献1856条经验 获得超11个赞

ReplaceMaterietChanged != null && ReplaceMaterietChanged.GetInvocationList().Length > 0


查看完整回答
反对 回复 2018-07-30
  • 2 回答
  • 0 关注
  • 800 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信