多线程,异步委托,同步委托几种方式的区别

简介: Code        public delegate void DoThingsDelegate();        private void Window_Loaded(object sender, RoutedEventArgs e)        {            //通过子线程调...
img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif Code
        public delegate void DoThingsDelegate();
        
private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            
//通过子线程调用方法  按钮事件可以执行
            Thread a = new Thread(new ThreadStart(DoSomeThing));
            a.IsBackground 
= true;
            a.Start();

            
//虽然是异步委托  但是按钮根本就显示不出来
            DoThingsDelegate dothingsEvent = new DoThingsDelegate(DoSomeThing);
            IAsyncResult result 
= dothingsEvent.BeginInvoke(nullnull);
            dothingsEvent.EndInvoke(result);

            
//同步委托就更不行了
            dothingsEvent.Invoke();

            
//真正的异步委托  异步调用方法,与多线程相似
            IAsyncResult result = dothingsEvent.BeginInvoke(new AsyncCallback(DoThingEnd), null);

        }
        
public static void DoSomeThing()
        {
            Console.WriteLine(
"begin");
            Thread.Sleep(
6000);
            Console.WriteLine(
"end");
        }
        
public static void DoThingEnd(IAsyncResult result)
        {
            Console.WriteLine(
"end it");
        }
        
private void button1_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show(
"11111");
        }
目录
相关文章
|
4天前
|
Python
Python学习之路 02 之分支结构
Python学习之路 02 之分支结构
457 0
Python学习之路 02 之分支结构
|
4天前
|
Java Python 开发者
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
477 3
Python 学习之路 01基础入门---【Python安装,Python程序基本组成】
|
4天前
|
Java
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
线程池详解与异步任务编排使用案例-xian-cheng-chi-xiang-jie-yu-yi-bu-ren-wu-bian-pai-shi-yong-an-li
52 0
|
2天前
|
关系型数据库 MySQL Java
实时计算 Flink版产品使用合集之mysql通过flink cdc同步数据,有没有办法所有表共用一个dump线程
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
8 0
|
4天前
|
前端开发 JavaScript UED
由于JavaScript是单线程的,因此在处理大量异步操作时,需要确保不会阻塞UI线程
【5月更文挑战第13天】JavaScript中的Promise和async/await常用于处理游戏开发中的异步操作,如加载资源、网络请求和动画帧更新。Promise表示异步操作的结果,通过.then()和.catch()处理回调。async/await作为Promise的语法糖,使异步代码更简洁,类似同步代码。在游戏循环中,使用async/await可清晰管理资源加载和更新,但需注意避免阻塞UI线程,并妥善处理加载顺序、错误和资源管理,以保证游戏性能和稳定性。
12 3
|
4天前
|
Unix Linux 调度
linux线程与进程的区别及线程的优势
linux线程与进程的区别及线程的优势
|
4天前
|
安全 C++
C++多线程编程:并发与同步
C++多线程编程:并发与同步
10 0
|
4天前
|
调度
线程和进程的区别?
线程和进程的区别?
|
4天前
|
安全 Java
【JAVA】线程的run()和start()有什么区别?
【JAVA】线程的run()和start()有什么区别?
|
4天前
|
存储 消息中间件 Java
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)