• c#基础: 线程的初级用法总结


    启动一个线程的两种方法:                                                                                                                                                                                                                                                                                    

        a、使用无参的方法
          Thread thread1 = new Thread(new ThreadStart("调用的方法名"));
          thread1.Start();
          //  调用此方法的线程上会抛出ThreadAbortException异常
          thread1.About();
        b、使用有参的方法
          Thread thread2 = new Thread(new ParameterizedThreadStart("调用的方法名"));
          // IsBackground  -->  获取或设置一个值,该值指示某个线程是否为后台线程
          thread2.IsBackground = true;
          thread2.Start();
     
    异步线程的使用  :                                                                                                                                                                                                                                                                                                  
        普通线程如果假死,会导致程序阻塞,可以用异步线程解决这个问题,CLR提供了很多方法,如FileStream的BeginRead和EndRead方法,HttpWebRequest的BeginGetResponse方法和EndGetResponse方法,
        如下为HttpWebRequest的使用示例:
        private void TestHttpRequest()
        {
            HttpWebRequest req = WebRequest.Create("http://www.baidu.com") as HttpWebRequest;
            req.BeginGetResponse(new AsyncCallback(ResponseCallback), req);
        }
        private void ResponseCallback(IAsyncResult ia)
        {
            HttpWebRequest req = ia.AsyncState as HttpWebRequest;
            HttpWebResponse res = req.EndGetResponse(ia) as HttpWebResponse;
            Console.WriteLine(res.ContentLength);
        }
        // 调用了Begin后 应该在适当的时候调用End释放资源,否则会造成资源无法释放
  • 相关阅读:
    Java验证码
    Java内存泄漏问题
    Java常见异常总结
    Java编码与乱码问题
    Spring:源码解读Spring IOC原理
    Quartz 定时邮件发送多个备份文件
    spring-boot 多线程
    java并发基础
    Java多线程中wait语句的具体使用技巧
    多线程的死锁
  • 原文地址:https://www.cnblogs.com/kafeibuku/p/5320329.html
Copyright © 2020-2023  润新知