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 已經(jīng)注冊了事件呢?因為RegisterMateriet在某個動作觸發(fā)時候才執(zhí)行注冊。這個動作可能會多次觸發(fā) 而我又不想第一次load的時候 就注冊。
2 回答

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊
int flag=0;
public void RegisterMateriet()
{
if(Interlocked.CompairExchange(ref flag,1,0)==0)
{
//..register your event
}
}

呼喚遠(yuǎn)方
TA貢獻(xiàn)1856條經(jīng)驗 獲得超11個贊
ReplaceMaterietChanged != null && ReplaceMaterietChanged.GetInvocationList().Length > 0
- 2 回答
- 0 關(guān)注
- 894 瀏覽
添加回答
舉報
0/150
提交
取消