乱七八糟的调用,asynccallback,delegate,thread

private void button2_Click(object sender, System.EventArgs e)
...{

    AsyncCallback m_test=new AsyncCallback(TestSleep);
    AsyncCallback m_wakeup=new AsyncCallback(WakeUp);
    ar=m_test.BeginInvoke(null,m_wakeup,null);

    System.Threading.ThreadStart m_ts=new System.Threading.ThreadStart(Monitor);
    System.Threading.Thread m_thread=new System.Threading.Thread(m_ts);
    m_thread.Start();

    MyDelegatetest m_cxydele=new MyDelegatetest(ShowName);
    m_cxydele.BeginInvoke(12,m_wakeup,null);

 
    MessageBox.Show("I was clicked");


}
IAsyncResult ar;

public delegate  void MyDelegatetest(int name);

private void TestSleep(IAsyncResult ar)
...{
    Debug.WriteLine("调用开始了");
    System.Threading.Thread.Sleep(5000);
    MessageBox.Show("我醒了");
    Debug.WriteLine("调用结束了");
}

private void WakeUp(IAsyncResult ar)
...{
    MessageBox.Show("我醒了,要吃东西");
}

private void Monitor()
...{
    while(!ar.IsCompleted)
    ...{  
    }

    MessageBox.Show("对方已经执行完了,我们开始干活吧");
}

private void ShowName(int name)
...{
    MessageBox.Show(name.ToString());
}

 

时间: 2024-08-12 15:40:35

乱七八糟的调用,asynccallback,delegate,thread的相关文章

C#线程调用带参数的方法

在 .NET Framework 2.0 版中,要实现线程调用带参数的方法有两种办法. 第一种:使用ParameterizedThreadStart. 调用 System.Threading.Thread.Start(System.Object) 重载方法时将包含数据的对象传递给线程. 使用 ParameterizedThreadStart 委托不是传递数据的类型安全的方法,因为 System.Threading.Thread.Start(System.Object) 方法重载接受任何对象. 这

[python] 专题八.多线程编程之thread和threading

        就个人而言,学了这么多年的课程又写了这么多年的程序,虽然没有涉及到企业级的项目,但还是体会到了有几个知识点是非常重要的,包括:面向对象的思想.如何架构一个项目.设计模式来具体解决问题.应用机器学习和深度学习的方法,当然也包括我这篇文章的内容--多线程和并行化处理数据.        这篇文章主要是参考Wesley J. Chun的<Python核心编程(第二版)>书籍多线程部分,并结合我以前的一些实例进行简单分析.尤其是在大数据.Hadoop\Spark.分布式开发流行的今天,

ios-用JavaScriptCore js调用OC

问题描述 用JavaScriptCore js调用OC <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>失败</title> <script type="text/javascript"> function redirectNative() { bluewhale.funT

android uiautomator-uiautomator 命令如何 在 android 中调用

问题描述 uiautomator 命令如何 在 android 中调用 在cmd中运行 adb push F:***AutoRunner.jar data/local/tmp/AutoRunner.jar adb shell uiautomator runtest AutoRunner.jar -c com.Runner.AutoRunner 能正常运行,手机上(android4.1.2)也有效果. 但是我想在一个安卓应用上(比如一个按钮隐藏当前应用后运行)调用adb shell uiautom

ASP.NET创建Web服务之异步Web服务

asp.net|web|web服务|创建|异步 为了改善调用阻碍线程的长期运行的方法的XML Web服务方法的性能,你应该考虑把它们作为异步的XML Web服务方法发布.实现一个异步XML Web服务方法允许线程在返回线程池的时候执行其他的代码.这允许增加一个线程池中的有限数目的线程,这样提高了整体性能和系统的可伸缩性. 通常,调用执行输入/输出操作的方法的XML Web服务方法适于作为异步实现.这样的方法的例子包括和其他的XML Web服务通讯.访问远程数据库.执行网络输入/输出和读写大文件方

探索.Net中的委托

我本来以为委托很简单,本来只想简简单单的说说委托背后的东西,委托的使用方法.原本只想解释一下那句:委托是面向对象的.类型安全的函数指针.可没想到最后惹出一堆的事情来,越惹越多,罪过,罪过.本文后面一部分是我在一边用SOS探索一边记录的,写的非常糟糕,希望您的慧眼能发现一些有价值的东西,那我就感到无比的荣幸了. 委托前世与今生 大家可能还记得,在C/C++里,我们可以在一个函数里实现一个算法的骨架,然后在这个函数的参数里放一个"钩子",使用的时候,利用这个"钩子" 注

C#基础全接触

引用类型是类型安全的指针,它们的内存是分配在堆(保存指针地址)上的.String.数组.类.接口和委托都是引用类型.强制类型转换与as类型转换的区别:当类型转换非法时,强制类型转换将抛出一个System.InvalidCastException异常,而as不会抛出异常,它返回一个null值.用using创建别名:using console = System.Console;访问限定符:public  该成员可以被其他任何类访问protected 该成员只能被其派生类访问private  该成员只

C#.net同步异步SOCKET通讯和多线程总结

多线程|异步 同步套接字通信 Socket支持下的网上点对点的通信 服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能 服务器端建立一个socket,设置好本机的ip和监听的端口与socket进行绑定,开始监听连接请求,当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信. 客户端建立一个socket,设置好服务器端的IP和提供服务的端口,发出连接请求,接收到服务的确认后,尽力连接,开始与服务器进行通信. 服务器端和客户端的连接及它们之间的数据传送均采

在C#中编写多线程应用程序,简单!

程序|多线程 (欢迎访问www.kunwsoft.com) 以前在使用VB来实现多线程的时候,发现有一定的难度.虽然也有这样那样的方法,但都不尽人意,但在C#中,要编写多线程应用程序却相当的简单.这篇文章将作简要的介绍,以起到抛砖引玉的作用! .NET将关于多线程的功能定义在System.Threading名字空间中.因此,要使用多线程,必须先声明引用此名字空间(using System.Threading;). 即使你没有编写多线程应用程序的经验,也可能听说过"启动线程""