在vb中,可以实现当有数据到达时,触发DataArival事件,请问在c#中怎样来实现同样功能?请各位大虾不吝赐教.

解决方案 »

  1.   

    用事件委托啊 public void delegate void OnDataArriveHandler(...);
      

  2.   

    谢谢,不过我在msdn中找不到你所说的OnDataArriveHandler啊,在baidu中也搜索不到,您能不能再详细的说一下?我从vb中过来没多长时间,菜鸟一个.呵呵.
      

  3.   

    VB有Dcom可以实现,C#有remoting,最笨点可以用轮询.....
      

  4.   

    weisunding(鼎鼎) 说的是自定义一个委托,
    public void delegate void OnDataArriveHandler(...);具体可以这样用:
    namespace testSpace
    {
             //自定义一个委托
    public delegate void OnDataArriveHandler(string strMsg);
    public class  testClass
    {
                      //然后在你需要触发特定事件的类里定义一个event事件,
    public event OnDataArriveHandler  eventDataArrive;
    public testClass()
    {
    } public void func1()
    {
    string tempString="这是一个事件";
                               //在需要触发的地方调用即可.
    this.eventDataArrive(tempString);
    } }
    }
    //申明这个类时绑定事件处理函数
    private void button13_Click(object sender, System.EventArgs e)
    {
      testSpace.testClass  ob=new testClass();
      ob.eventDataArrive+=new OnDataArriveHandler(ob_eventDataArrive);
      ob.func1();   //执行完这句,应该就可以弹出一个对话框啦.
    }private void ob_eventDataArrive(string strMsg)
    {
    MessageBox.Show(strMsg);
    }
      

  5.   

    首先感谢ASDC001(ASDC001)的帮助,不过,可能我说的不是很明白,您没明白我的意思。
    我需要编写一个网络程序,使用tcpListener和tcpClient,但是这两个组件中当网络数据到达时,没有通知,我需要不断的来查询有没有数据到达。
    我想有没有其他的办法,当有数据到达时,可以给我通知(或有某事件发生),这样我就可以不用轮询来查询网络是否有数据。
    或者说,在C#中有没有象网络中VB那样可以直接可以触发特定事件的TCP组件。