高手论声明VB.NET事件

如果在运行线程后采用循环查询的方法显然影响了交互性,VB.NET事件是从线程方法返回数据的好方法,文章有详细的介绍。

AD:


    VB.NET经过长时间的发展,很多用户都很了解VB.NET事件了,这里我发表一下个人理解,和大家讨论讨论。调用了线程的start方法,并不能确保其中的方法马上执行完,而要得到数据访问的结果又必须等其中的方法执行完毕。

    如果在运行线程后采用循环查询的方法显然影响了交互性,事件是从线程方法返回数据的好方法。只要在线程方法所在的类中定义一个事件,在线程方法中发出事件,而在窗体类中生成代理。线程是操作系统分配处理器时间的基本单元,线程可以在单个执行线程执行的同时运行多个活动,支持抢先多任务处理的操作系统可以创建多个线程并通过时间片轮转的方式使它们同时运行。在需要良好用户交互的应用以及与网络和数据库进行通讯的应用中,使用多线程能提供良好的交互体验,能对用户的要求做出快速的反应。

    首先在dealDataBase类声明后加进VB.NET事件:

       
       
    1. Public Class dealDataBase  
    2. Public Event GetDataComplete(ByVal e As DtatTable)  
    3. …  
    4. End Class 

    在类dealDataBase的GetDataFromDataBase()方法中加入发出事件的代码,放在m_sqlDataAdapter.Fill(m_table)后:

       
       
    1. Public sub GetDataFromDataBase()  
    2. …  
    3. m_sqlDataAdapter.Fill(m_table)  
    4. RasiseEvent GetDataComplete(m_table)  
    5. …  
    6. End Sub 

    下面在窗体类中生成代理

       
       
    1. Private Sub dealData (ByVal e As DataTable)  
    2. '处理数据表  
    3. End Sub 

    在创建线程并运行线程的代码中进行事件连接,事件连接代码放在运行线程前, dealDataBase类实例化后:

       
       
    1. AddHandler myDB. GetDataComplete,AddressOf dealData 

    这样,当线程方法执行完毕就会发出事件,而dealData方法会响应VB.NET事件并做出处理。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值