乱七八糟的调用,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.BeginInvo
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());
}
 
相关文章
|
1月前
|
存储 Java 程序员
优化Java多线程应用:是创建Thread对象直接调用start()方法?还是用个变量调用?
这篇文章探讨了Java中两种创建和启动线程的方法,并分析了它们的区别。作者建议直接调用 `Thread` 对象的 `start()` 方法,而非保持强引用,以避免内存泄漏、简化线程生命周期管理,并减少不必要的线程控制。文章详细解释了这种方法在使用 `ThreadLocal` 时的优势,并提供了代码示例。作者洛小豆,文章来源于稀土掘金。
|
5月前
|
Java 程序员 调度
Thread类及常见方法
Thread类及常见方法
|
数据采集 资源调度 安全
【JavaSE专栏77】线程的创建和启动,继承Thread类或实现Runnable接口完成线程创建启动
【JavaSE专栏77】线程的创建和启动,继承Thread类或实现Runnable接口完成线程创建启动
|
调度
Thread 类中的 yield()方法有什么作用?
Thread 类中的 yield()方法有什么作用?
151 0
|
调度
线程 --- Thread 类的基本用法 old
线程 --- Thread 类的基本用法 old
129 0
线程 --- Thread 类的基本用法 old
|
Android开发
AsyncHttpClient放在子线程执行时抛出异常的解决方法
AsyncHttpClient放在子线程执行时抛出异常的解决方法
420 0
Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第66题中的线程状态转换图)。
1159 0