学堂 学堂 学堂公众号手机端

在C#中,Invoke和BeginInvoke都是用来在多线程中执行一个委托(delegate)的方法

lewis 1年前 (2024-02-29) 阅读数 4 #技术

在C#中,InvokeBeginInvoke都是用来在多线程中执行一个委托(delegate)的方法。

Invoke方法是同步执行委托的方法,会阻塞当前线程直到委托执行完成。使用方式如下:

//假设有一个委托类型为Action的变量action action.Invoke();

BeginInvoke方法是异步执行委托的方法,会在另一个线程中执行委托。使用方式如下:


//假设有一个委托类型为Action的变量action action.BeginInvoke(null,null);

BeginInvoke方法中,第一个参数是一个AsyncCallback类型的回调函数,用来在委托执行完成后执行一些操作;第二个参数是一个对象,用来传递给委托的参数。

需要注意的是,在BeginInvoke方法中传递的参数需要是object类型的,如果需要传递多个参数,可以使用Tuple或者自定义一个类来封装参数。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门