怎么控制一个委托事件里同样的方法只注册一次
大家好,请教大家一个问题。我有一个单例窗体如 Fax:Form 里面定义了一个委托事件
public delegate void UpdateFaxEventHander(string tifPath);public event UpdateFaxEventHander UpdateFax;
public FrmFaxTaskEdit() { InitializeComponent(); Fax.Instance.UpdateFax += new Fax.UpdateFaxEventHander(Instance_UpdateFax); } Delegate[] allDlg = new Delegate[this.UpdateFax.GetInvocationList().GetLength(0)]; this.UpdateFax.GetInvocationList().CopyTo(allDlg, 0); foreach (Delegate dlg in allDlg) { if (dlg.Method.Name == "Form1_UpdateFax") { //不在绑定 } else { //绑定 UpdateFax += new UpdateFaxEventHander(Form1_UpdateFax); MessageBox.Show("绑定成功"); } }
[解决办法]
class Program { static void Main(string[] args) { pokeer pk = pokeer.GetIntence(); } } class pokeer { private readonly static object pkLog = new object(); private static pokeer pk = null; private pokeer() { } public static pokeer GetIntence() { if (pk == null) { lock (pkLog) { if (pk == null) { pk = new pokeer(); } } } return pk; } }
[解决办法]