简单的异步

  1. using System;
  2. using System.Threading;
  3. namespace ConsoleApplication1
  4. {
  5. class Class1
  6. {
  7. //声明委托
  8. public delegate void AsyncEventHandler();
  9. //异步方法
  10. void Event1()
  11. {
  12. Console.WriteLine("Event1 Start");
  13. System.Threading.Thread.Sleep(4000);
  14. Console.WriteLine("Event1 End");
  15. }
  16. // 同步方法
  17. void Event2()
  18. {
  19. Console.WriteLine("Event2 Start");
  20. int i = 1;
  21. while (i < 10)
  22. {
  23. i = i + 1;
  24. Console.WriteLine("Event2 " + i.ToString());
  25. }
  26. Console.WriteLine("Event2 End");
  27. }
  28. void Event3()
  29. {
  30. Console.WriteLine("Event3 Start");
  31. for (int i = 0; i < 100; i++)
  32. {
  33. Thread.Sleep(5);
  34. Console.WriteLine(i.ToString());
  35. }
  36. Console.WriteLine("Event3 End.");
  37. }
  38. [STAThread]
  39. static void Main(string[] args)
  40. {
  41. long start = 0;
  42. long end = 0;
  43. Class1 c = new Class1();
  44. Console.WriteLine("ready");
  45. start = DateTime.Now.Ticks;
  46. //实例委托
  47. AsyncEventHandler asy = new AsyncEventHandler(c.Event1);
  48. //异步调用开始,没有回调函数和AsyncState,都为null
  49. IAsyncResult ia = asy.BeginInvoke(null, null);
  50. //同步开始,
  51. c.Event2();
  52. //异步结束,若没有结束,一直阻塞到调用完成,在此返回该函数的return,若有返回值。
  53. asy.EndInvoke(ia);
  54. //都同步的情况。
  55. //c.Event1();
  56. //c.Event2();
  57. end = DateTime.Now.Ticks;
  58. Console.WriteLine("时间刻度差=" + Convert.ToString(end - start));
  59. Console.ReadLine();
  60. }
  61. }
  62. }
时间: 2024-10-12 22:50:07

简单的异步的相关文章

JQUERY插件JqueryAjaxFileUplaoder----更简单的异步文件上传

异步上传相信大家都做过类似的功能,JqueryAjaxFileUploader为我们提供了更简单的实现和使用方式.不过既然是JQUERY的插件那么它所依赖的环境大家都懂得.JqueryAjaxFileUploader并不华丽,也没有提供美化文件上传控件的css,它并不像jQuery File Upload(喜欢的同学可以去尝试下),提供了美观的样式和专门的图片预览.多任务上传等等, JqueryAjaxFileUploader 所拥有的很简单,只是异步上传文件的功能,当然这并不排除由你亲自为它披

在python下比celery更加简单的异步任务队列RQ

前言: 这里介绍一个python下,比celery更加简单的异步工具,真的是很简单,当然他的功能没有celery多,复杂程度也没有celery大,文档貌似也没有celery多,但是为啥会介绍rq这个东西 因为他够简单. 当然他虽然简单,但是也是需要中间人的,也就是 Broker,这里只能是redis了. 他没有celery支持的那么多,比如 redis rabbitmq mongodb mysql之类的. 说回来,咱们用rq,就是看重他的简单. 如对celery有兴趣,可以看看我以前写过的博文.

简单实现异步编程promise模式

本篇文章主要介绍了异步编程promise模式的简单实现,并对每一步进行了分析,需要的朋友可以参考下 异步编程 javascript异步编程, web2.0时代比较热门的编程方式,我们平时码的时候也或多或少用到,最典型的就是异步ajax,发送异步请求,绑定回调函数,请求响应之后调用指定的 回调函数,没有阻塞其他代码的执行.还有像setTimeout方法同样也是异步执行回调的方法. 如果对异步编程还不太熟悉的话,直接戳 阮一峰大牛的教程 ,这篇文章介绍了四种异步编程的方式: 回调函数 事件监听 发布

简单的异步HTTP服务端和客户端

/// <summary> /// 异步Http服务器 /// </summary> class AsyncHttpServer { readonly HttpListener _listener; //相应信息 const string RESPONSE_TEMPLATE = "<html><head><title>Test</title></head><body><h2>Test pa

PHP简单实现异步多文件上传并使用Postman测试提交图片

虽然现在很多都是使用大平台的对象存储存放应用中的文件,但有时小项目还是可以使用以前的方式上传到和程序一起的服务器上,强调一下这里是小众需求,大众可以使用阿里云的OSS,腾讯的COS,七牛的巴拉巴拉xxxxxx…… Postman使用 1. 打开后,选择"body"->"form-data",key悬浮的时候选择“File”, 然后value会出现一个文件按钮. 2. 本地的上传方法测试一下打印一下. 3. 以上使用Postman测试文件上传接口就通了,下面就写

Android开发之一种简单的异步加载图片方法

首先说明的是,该方法已经被我抛弃了.之前用它,发现加载速度不好.具体没怎么细心的看. 现在我用volley了.拿出来只是给大家批判的. package com.souya.seller.util.ex; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.ref.SoftReference; import java.util.HashMap; impor

Jquary 和Ajax实现简单的异步请求

代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ajax测试</title> <link rel="stylesheet" href="../demo1/bootstrap/css/bootstrap.css"> <script src=&

jquery 和 FormData 最简单图片异步上传

<script src="/scripts/jquery/jquery-3.1.1.min.js"></script> <script type="text/javascript"> $(function () { var fileInfo = $('#file').prop('files')[0]; var fm = new FormData(); fd.append("xxxx", fileInfo); $

1.ajax简单实现异步交互

效果:点击获取信息 testAjax.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4