`
lovnet
  • 浏览: 6704966 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

(二)线程--通过委托异步调用方法(示例下载)

 
阅读更多

(一).描述
先运行个简单的线程示例,认识一下线程
通过委托调用方法,以及使用AsyncResult判断线程的状态

(二).代码
using System;
using System.Threading;
using System.Runtime.Remoting.Messaging;

namespace 通过委托异步调用方法
{
//委托声明(函数签名)
delegate string MyMethodDelegate();

class MyClass
{
//要调用的动态方法
public string MyMethod1()
{
return "Hello Word1";
}

//要调用的静态方法
public static string MyMethod2()
{
return "Hello Word2";
}
}
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
MyClass myClass = new MyClass();

//方式1: 声明委托,调用MyMethod1
MyMethodDelegate d = new MyMethodDelegate(myClass.MyMethod1);
string strEnd = d();
Console.WriteLine(strEnd);

//方式2: 声明委托,调用MyMethod2 (使用AsyncResult对象调用)
d = new MyMethodDelegate(MyClass.MyMethod2); //定义一个委托可以供多个方法使用
AsyncResult myResult; //此类封闭异步委托异步调用的结果,通过AsyncResult得到结果.
myResult = (AsyncResult)d.BeginInvoke(null,null); //开始调用
while(!myResult.IsCompleted) //判断线程是否执行完成
{
Console.WriteLine("正在异步执行MyMethod2 .....");
}
Console.WriteLine("方法MyMethod2执行完成!");
strEnd = d.EndInvoke(myResult); //等待委托调用的方法完成,并返回结果
Console.WriteLine(strEnd);
Console.Read();
}
}
}


本示例代码已经测试,能够正常运行!

(三).示例下载
http://www.cnblogs.com/Files/ChengKing/ThreadExample.rar

分享到:
评论

相关推荐

    多线程异步调用(并参递参数)

    多线程异步调用(并参递参数)经典代码示例

    C# 委托的三种调用示例(同步调用 异步调用 异步回调)

    首先,通过代码定义一个委托和下面三个示例将要调用的方法: 代码如下:public delegate int AddHandler(int a,int b); public class 加法类 { public static int Add(int a, int b) { Console.WriteLine(...

    NET中的多线程处理.rar

    多线程处理是创建可以响应的智能客户端应用程序的重要部分,本文整理、概括与梳理了NET多线程处理的知识,主要包含:1)同步和异步调用之间的选择;2)前台线程和后台线程之间的选择;3)处理锁定和同步;4)何时使用...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--aidl调用系统未公开的方法代码示例2 |--android dp和px之间转换 |--android INSTALL_PARSE_FAILED_MANIFEST_MALFORMED |--android root下禁用组件 |--android 判断网络状态 |--android 对话框样式 |--android ...

    LifecycleAwareTask:从 UI 线程进行异步调用的简单库。 查看示例活动

    生命周期感知任务 从 UI 线程进行异步调用的简单库。 查看示例活动您提供的唯一两件事是callback和canHandle()方法

    权威.NET多线程详解(源码示例)

    基础篇 • 怎样创建一个线程 • 受托管的线程与 Windows线程 • 前台线程与后台线程 • 名为BeginXXX和EndXXX的方法是做什么用的 • 异步和多线程有什么关联 ...• Web页面怎么调用异步WebService

    使用Win32API实现Windows下异步串口通讯.doc

    使用Win32API实现Windows下异步串口通讯 目录:1.异步非阻塞串口通讯的优点2.异步非阻塞串口通讯的基本原理3.异步非阻塞串口通讯的基础知识4.异步非阻塞串口通讯的实现步骤一,异步非阻塞串口通讯的优点读写...

    Spring Boot异步调用@Async过程详解

    主要介绍了Spring Boot异步调用@Async过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    C#开启线程的四种方式示例详解

    一、异步委托开启线程 public static void Main(string[] args){ Action&lt;int&gt; a=add; a.BeginInvoke(3,4,null,null);//前两个是add方法的参数,后两个可以为空 Console.WriteLine(main()); Console.ReadKey();...

    spring异步service中处理线程数限制详解

    主要给大家介绍了关于spring异步service中处理线程数限制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    .NET异步编程总结—-四种实现模式代码总结

    今天在公司,忙里偷闲,总结一下.NET中的异步调用函数的实现方法,DebugLZQ在写这篇博文之前自己先动手写了本文的所有示例代码,开写之前是做过功课的,用代码说话方有说服力。 本文的内容旨在用最简洁的代码来把...

    ACE框架主动对象的实现及代码示例

    主动对象是相对于被动对象而言的,通常传统的方法调用都是由单一线程顺序完成对象内部的方法调用。因为对象内部的方法是由主线程被动调用的所以称之为被动对象1)。主动对象的方法调用表面上和普通的方法调用没有很大...

    TCPIP通讯程序的编写

    使用 IAsyncResult 调用异步方法 提供代码示例,演示应用程序检测异步操作结束的各种方式。 使用委托进行异步编程 介绍以异步方式调用同步方法。 使用基于事件的异步模式进行多线程编程 介绍基于事件的异步...

    NET组件程序设计 第2版中文版.part3.rar )

    第7章:异步调用 异步机制的必备条件 委托的老调重弹 异步调用编程模型 异步错误处理 异步事件 异步调用缺陷 同步和异步处理 第8章:多线程和并发管理 线程和多线程 组件和线程 使用线程 同步线程 自动同步 手动同步...

    异步方式访问网页.rar

    WaitOne方法将一直等待,直到异步调用完成,并发出通知 * ************************************************************/ /* private delegate int NewTaskDelegate(int ms); private static int new...

    Spring Boot利用@Async异步调用:ThreadPoolTaskScheduler线程池的优雅关闭详解

    主要给大家介绍了关于Spring Boot利用@Async异步调用:ThreadPoolTaskScheduler线程池的优雅关闭的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧

    阿里云javasdk源码-nls-sdk-java-demo:阿里云智能语音交互DEMO

    阿里云java sdk源码 nls-sdk-java-demo 阿里云智能语音交互DEMO demo 解压后,在pom 目录运行mvn package ,会在target目录生成可执行jar nls-example-transcriber-2.0.0-jar-with-...:单线程调用演示实时语音识别接

    Socket通讯代码示例

    客户端是用WPF编写的用来模拟聊天的窗体,通讯方式采用Socket,涵盖了命令,委托异步调用,Socket编程等多个知识点

    java多线程编程之join方法的使用示例

    join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法

    基于WPF的UDP异步组播C#.rar

    网上关于C#的异步发送与接收资源很少,都是通过创建线程进行接收监听做的,本示例封装成了DLL,可以直接调用,可供大家参考,基于dev控件编写,估计有些人会打不开,可以参考CS中源代码使用

Global site tag (gtag.js) - Google Analytics