您不知道的.net多线程

大家一般都认为.net是制作网页的,需要开启多线程吗?还有.net每一个用户访问就开启了一个线程了,还需要我们自己去开启吗?
    带着这样的问题,我们独占网络一一位您解释。
    首先在什么情况下要开启多线程?
    由于我们浏览器每一次访问都是一次单独过程,需要这次访问结束后才可以运行下一次的访问,就是我们的程序运行一样,先运行上面的程序,再运行下面的程序,由这样的关系,所以我们会发现一个问题就是如果我这一次操作需要运行的时候需要特别长的时间,我们就会发现程序一直运行,但是用户看不到任何的效果,还有我们需要同步运行下一个进程的时候,您会发现程序现在由于被上一个进程占用的了,没有办法运行下面的程序,所以这样同步的情况下一般也是需要开启多线程的,还有一种情况就是我们的网站需要有一个一直在运行的线程来计算网站的信息,这次情况一般会写在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都引用不了

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

如:有不懂可以联系独占网络技术人员 http://www.sz886.com

时间: 2024-11-26 23:09:32

您不知道的.net多线程的相关文章

关于多线程编程您不知道的 5 件事

虽然很少有 Java? 开发人员能够忽视多线程编程和支持它的 Java 平台库,更少有人有时间深入研究线程.相反地,我们临时学习线程,在需要时向我们的工具箱添加新的技巧和技术.以这种方式构建和运行适当的应用程序是可行的,但是您可以做的不止这些.理解 Java 编译器的线程处理特性和 JVM 将有助于您编写更高效.性能更好的 Java 代码. 在这期的 5 件事 系列 中,我将通过同步方法.volatile 变量和原子类介绍多线程编程的一些更隐晦的方面.我的讨论特别关注于这些构建如何与 JVM 和

你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程,并且根据加载过程中所遇到的一系列问题提供解决方案. 其实SQL Server作为微软的一款优秀RDBMS,它启动的过程中,本身所带的那些系统库发生问题的情况相对还是很少的,我们在平常使用中,出问题的大部分集中于我们自己建立的用户数据库. 而且,相对于侧重面而言,其实我们更关注的是我们自己建立的用户数

你可能不知道的陷阱, IEnumerable接口

IEnumerable枚举器接口的重要性,说一万句话都不过分.几乎所有集合都实现了这个接口,Linq的核心也依赖于这个万能的接口.C语言的for循环写得心烦,foreach就顺畅了很多. 我很喜欢这个接口,但在使用中也遇到不少的疑问,你是不是也有与我一样的困惑: (1) IEnumerable 与  IEnumerator到底有什么区别 (2) 枚举能否越界访问,越界访问是什么后果?为什么在枚举中不能改变集合的值? (3) Linq的具体实现到底是怎样的,比如Skip,它跳过了一些元素,那么这些

你所不知道的五件事情--java.util.concurrent(第二部分)

这是Ted Neward在IBM developerWorks中5 things系列文章中的一篇,仍然讲述了关于Java并发集合API的一些应用窍门,值得大家学习.(2010.06.17最后更新) 摘要:除了便于编写并发应用的集合API外,java.util.concurrent还引入了其它的预置程序组件,这些组件能辅助你在多线程应用中控制和执行线程.Ted Neward再介绍了五个来自于java.util.concurrent的Java编程必备窍门. 通过提供线程安全,性能良好的数据结构,并发

[iOS翻译]《iOS 7 Programming Pushing the Limits》系列:你可能不知道的Objective-C技巧

简介: 如果你阅读这本书,你可能已经牢牢掌握iOS开发的基础,但这里有一些小特点和实践是许多开发者并不熟悉的,甚至有数年经验的开发者也是.在这一章里,你会学到一些很重要的开发技巧,但这仍远远不够,你还需要积累更多的实践来让你的代码更强力. /* 本文翻译自<iOS 7 Programming Pushing the Limits>一书的第三章“You May Not Know”,想体会原文精髓的朋友请支持原书正版. ——————(博客园.新浪微博)葛布林大帝 */ 目录: 一. 最好的命名实践

python面试不得不知道的点——GIL

# 百度搜索:python面试不得不知道的点——GIL# 摘自:https://blog.csdn.net/weixin_41594007/article/details/79485847 # 多线程并不会充分调用两个CPU# 多进程则是会完全调用两个CPU # GIL全局解释器锁(global interpreter lock),每个线程在执行时候都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,即同一时刻只有一个线程使用CPU,也就是说多线程并不是真正意义上的同时执行# Guido

我以前不知道的 Session

之前只知道 Session 是服务器与客户端的一个会话,有默认过期时间,是服务器端的技术,与之对应的是 Cookie 技术,是客户端技术. 下面的几点是之前不知道的:[或者是忘了] 1 . Session是什么时候创建的? 2 . SessionId的组成? 3 . Session存储在哪里? 回答上面的问题: 1 .  在 Java中,Session是在调用 HttpServletRequest实例的 getSession()时创建的[不同语言会有不同时机的创建], 2 .  Session

你可能不知道的字符比较中的“秘密”

原文:你可能不知道的字符比较中的"秘密" 有时候,一个简单的字符比较,你可能也会被弄得晕头转向.为什么这样说呢?请看下面这个例子(代码就不贴了,因为后来发现页面不支持这两个字符的显示).猜测一下,会是什么结果?是1还是0? 回答这个问题之前,请再继续向下看.先创建几个不同排序规则的数据库(见数据库名可知). Figure-1: 在SQL_Latin1_General_CP1_CI_AS排序规则下的比较 Figure-2: 在Chinese_PRC_CI_AS排序规则下的比较 在SQL_

你所不知道的html5与html中的那些事(二)

文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢? 本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的理念与想法,html5的新标签的用意与具体开发中场景应用,html5与css3的感情经历(用法搭配),包括html5的父亲html的一些