thread.start和threadstart.invoke的区别

new Thread(() =>refreshDGVdelegate(App.StockList)).Start();//在新线程中执行操作

new ThreadStart(() => refreshDGVdelegate(App.StockList)).Invoke();//在当前线程执行,需等待操作完成

时间: 2024-08-26 07:59:27

thread.start和threadstart.invoke的区别的相关文章

BeginInvoke与Invoke的区别

简单的讲就是 BeginInvoke不需要等待方法运行完毕,就会继续执行下面的代码 Invoke则必须等待Invoke中的代码运行完毕,才会继续执行下面的代码. 可以通过下面的项目测试上面所描述的观点. 在代码中的一段代码如下: 1 /// <summary> 2 /// Sub thread function 3 /// </summary> 4 private void ThreadFun() 5 { 6 MethodInvoker mi = new MethodInvoker

Thread类中各种状态的区别以及使用

wait()是等待某个object:1.执行object的synchronized方法:2.执行一段synchronized代码,而且是基于object做的同步:3.如果object是class类,可以执行它的synchronized static方法 notify().notifyAll():能够唤醒等待的线程 interrupt():中断一个线程,用得比较少 join().join(long millis):当这个线程调用了join()方法后它才执行后面的线程,保证了线程之间有顺序的执行.如

Thread.currentThread().getName() 和 this.getName()区别详解

Thread.currentThread().getName() 和 this.getName()区别详解 <<Java多线程编程核心技术>> 这本书里说到了这个:  Thread.currentThread().getName() this.getName() 他俩是有区别的,得到的效应是不一样的,首先,从直观上来说: Thread.currentThread().getName() 是一个静态方法 this.getName()是一个实例方法 实例方法,一般情况下是:反映这个实例

Thread 的 sleep() 和 wait() 的区别

Java Thread 的使用 Java Thread 的 run() 与 start() 的区别 Java Thread 的 sleep() 和 wait() 的区别 1. sleep 和 wait 方法解释 sleep()方法是Thread类里面的,主要的意义就是让当前线程停止执行,让出cpu给其他的线程,但是不会释放对象锁资源以及监控的状态,当指定的时间到了之后又会自动恢复运行状态. wait()方法是Object类里面的,主要的意义就是让线程放弃当前的对象的锁,进入等待此对象的等待锁定池

Java基础加强之并发(三)Thread中start()和run()的区别

Thread中start()和run()的区别 start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法.start()不能被重复调用.run()   : run()就和普通的成员方法一样,可以被重复调用.单独调用run()的话,会在当前线程中执行run(),而并不会启动新线程! MyThreadTest.java代码 class MyThread extends Thread{ public void run() { System.out.println("线程名:&qu

多线程-----Thread类与Runnable接口的区别

第一个继承Thread类来实现多线程,其实是相当于拿出三件事即三个卖早餐10份的任务分别分给三个窗口,他们各做各的事各卖各的早餐各完成各的任务,因为MyThread继承Thread类,所以在newMyThread的时候在创建三个对象的同时创建了三个线程:实现Runnable的, 相当于是拿出一个卖早餐10份的任务给三个人去共同完成,newMyThread相当于创建一个任务,然后实例化三个Thread,创建三个线程即安排三个窗口去执行. 一个类只能继承一个父类,存在局限:一个类可以实现多个接口.在

C#中 ThreadStart和ParameterizedThreadStart区别

最主要区别: 1.Thread 是启动一个线程,但是没有参数. 2.ParameterThreadStart  线程可以接受一个输入参数 ThreadStart: ThreadStart这个委托定义为void ThreadStart(),也就是说,所执行的方法不能有参数. ThreadStart threadStart=new ThreadStart(ProcessData); Thread thread=new Thread(threadStart); thread.Start(); publ

Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别

查了一些资料也不是太明白两个的区别,但是前者是最安全的用法 打个简单的比方,你一个WEB程序,发布到Tomcat里面运行.首先是执行Tomcat org.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoader().而我们后面的WEB程序,里面的jar.resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar.资源文件的时候,首先应该是使用Thread.currentThread

Java Thread 的 run() 与 start() 的区别

下面先简答的讲述一下两个参数的区别,后续会针对Java线程进行一些补充说明: 1) start: 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码.通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止.2) run: run()方法只是类的