C#委托事件实例

 

public delegate void TimeoutHandler(int connectID);

public class UserOnLineChecker

{

  public event TimeoutHandler SomeConnectionTimeOuted;

  private Timer timerForCheckOnLine;

  public UserOnLineChecker()

  {

    this.SomeConnectionTimeOuted = null;

  }

  private void OnLineCheckAction(object state)
      {

    if (this.SomeConnectionTimeOuted != null)
            {
                this.SomeConnectionTimeOuted(state as int);
            }

  }

  public void Start()
       {
            this.timerForCheckOnLine = new Timer(new TimerCallback(this.OnLineCheckAction), null, 3* 60000, 3 * 60000);
        }

}

调用:

 

public class UserLogin

{

  private UserOnLineChecker tcpUserOnLineChecker;

  public UserLogin()

  {

      this.tcpUserOnLineChecker = new UserOnLineChecker();
                //this.tcpUserOnLineChecker.Initialize(this.onLineCheckSpan);
                this.tcpUserOnLineChecker.SomeConnectionTimeOuted += new TimeoutHandler(this.tcpUserOnLineChecker_SomeConnectionTimeOuted);

  }

  private void tcpUserOnLineChecker_SomeConnectionTimeOuted(int connectID)
        {

      //处理回调事件
          }

  public void Start()
        {
            this.tcpUserOnLineChecker.Start();//调用UserOnLineChecker类中委托注册事件方法
        }

}

posted @ 2011-11-10 15:34  火腿骑士  阅读(189)  评论(0编辑  收藏  举报