zoukankan      html  css  js  c++  java
  • 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释放资源,否则会造成资源无法释放
  • 相关阅读:
    deepin-wine-tim 字体发虚
    windows&linux双系统时间相差8小时
    Linux 禁用 ipv6
    双系统win10更新后无法进入linux
    Failed to receive SOCKS4 connect request ack 解决
    zsh 使用通配符功能
    vux修改css样式的2种办法
    Ubuntu 16.04 安装OpenSSH7.4
    Nginx开启http2访问和gzip网页压缩功能
    vue开发环境和生产环境里面解决跨域的几种方法
  • 原文地址:https://www.cnblogs.com/kafeibuku/p/5320329.html
Copyright © 2011-2022 走看看