1. 定義委托
public delegate void TcpConnected(Object sender, ref object o);
2. 定義事件
public event TcpConnected Connected;
3. 掛載事件
if (Connected != null)
Connected(this, ref s.obj);
Connected(this, ref s.obj);
4. 綁定通知函數
serv = new TcpServer(TCPLISTENPORT, IPAddress.Any);
serv.Connected += new TcpConnected(Connected); //當有一個用戶連接
serv.Connected += new TcpConnected(Connected); //當有一個用戶連接
5.執行通知函數
// A client attached to the tcp port 一個客戶端連接上這個端口 private void Connected(object sender, ref object t) { lock (this) //lock 確保當一個線程位於代碼的臨界區時,另一個線程不進入臨界區。 //如果其他線程試圖進入鎖定的代碼,則它將一直等待(即被阻止),直到該對象被釋放。 { t = 0; iConnectionCount++; if (iConnectionCount == 1) { ConnectionReady.Set(); } } }