深圳网站建设、深圳建网站、网站建设公司定制属于您的高端个性化网站!

搜索深圳网站建设相关案例及相关信息 服务热线:13530005572/15112579390
首页 > 网站建设知识 > 您不知道的.net多线程

您不知道的.net多线程

  • 所属分类:网站建设知识
  • 作者: 利来w66(中国)有限公司
  • 更新时间: 2015-1-27 10:12:56
  • 返回列表
     大家一般都认为.net是制作网页的,需要开启多线程吗?还有.net每一个用户访问就开启了一个线程了,还需要我们自己去开启吗?
    带着这样的问题,我们利来w66(中国)有限公司一一位您解释。
    先在什么情况下要开启多线程?
    由于我们浏览器每一次访问都是一次单独过程,需要这次访问结束后才可以运行下一次的访问,就是我们的程序运行一样,先运行上面的程序,再运行下面的程序,由这样的关系,所以我们会发现一个问题就是如果我这一次操作需要运行的时候需要特别长的时间,我们就会发现程序一直运行,但是用户看不到任何的效果,还有我们需要同步运行下一个进程的时候,您会发现程序现在由于被上一个进程占用的了,没有办法运行下面的程序,所以这样同步的情况下一般也是需要开启多线程的,还有一种情况就是我们的网站需要有一个一直在运行的线程来计算网站的信息,这次情况一般会写在Global文件里面。
    好了那么多,我们现在就来开启一个多线程测试一个。
    先多线程需要引用 using System.Threading;
   然后我们需要定义一个线程,之后就是开启线程,下面是例子的代码
  protected void Page_Load(object sender, EventArgs e)
  {
 if (!IsPostBack)
    {
     //定义一个多线程
    Thread thread = new Thread(showrun);
    //开启线程
    thread.Start();
  }
 }
/// <summary>
/// 多线程的方法
/// </summary>
public void showrun()
{
 for (int i = 0; i < 100; i++)
    {
      //提醒多线程不能使用 cookies
      Session["duzhan"] = i;
     //让线程休息
      Thread.Sleep(1000);
 }
 }
     后说一下开启多线要注意的事情
     由于开启线程是运行在服务器的内存之中,不是运行在浏览器中,所以cookies在多线程里面是不能被调用到的,如果调用就会出现报错
     开启线程后一些system.web的方法没有办法引用到,所以 Server.MapPath不是能被引用到的,所以如果要调用此方法可以用 System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) 代替
    所以一般线程里面的方法是由ashx文件运行,一般就不能将信息存在session,因为过多几个类,没有不能引用到system.web了,所以session而且有cache都引用不了

   一般这种情况下我们就将参数传递过来被引用,如果希望将信息保存下面,好的方法就是保存到数据库里面去。

  如:有不懂可以联系利来w66(中国)有限公司技术人员


相关推荐

您值得信任的网站建设专家!

为其提供系统的基于互联网的品牌行销策略 、 创意执行 、 追踪运营服务 。