1. Asp.net多线程怎么alter
使用主线程委托方法实现吧。
2. net 中多线程有几种实现方法
1:UI线程。这个线程是操作系统自动创建的,你画了个winform,那么程序一启动,自然有了这么个线程。值得注意的是,你添加一个Timer控件,现实的多线程,实际上,依然在UI线程里。只是定时被Timer夺去控制权而已,本质上依然是单线程。另一个线索也可以论证:本来非UI线程想更新UI界面,是需要利用delegate,involk等来实现的,但是在timer控件的线程里,是不需要的。
2:Thread thread = new Thread(obj.functionName); thread.start();
这样自定义的线程是真正的多线程,它的使用也是最灵活的。不像Timer线程,精确度只有50ms。值得注意的是:如果需要启动的线程函数是带输入参数的,怎么办?
有两个办法:
A:你不是启动obj对象里的函数吗?在thread.start();之前,你先添加这句话 MyObject obj = new MyObject(int a ,int b); 这样,obj.functionName函数里可以直接使用a和b了。还有个方法,就是利用委托封装函数,然后thread.start(参数);具体代码如下:
[ComVisibleAttribute(false)]
public delegate void ParameterizedThreadStart(Object obj)
//这个Thread类的构造方法的定义如下:
public Thread(ParameterizedThreadStart start);
public static void myStaticParamThreadMethod(Object obj)
{
Console.WriteLine(obj);
}
static void Main(string[] args)
{
Thread thread = new Thread(myStaticParamThreadMethod);
thread.Start("通过委托的参数传值");
}
3:利用threadpool线程池技术。threadpool的主要原理是池里面的线程不会完成一个任务就消亡,而是会继续执行其他的任务,这减少了线程的消亡和生成的代价。
主要是ThreadPool.QueueUserWorkItem()和ThreadPool.RegisterWaitForSingleObject(···)两个静态函数。具体如下:
QueueUserWorkItem的使用:
static void ThreadProc(Object stateInfo)
{
Console.WriteLine("Hello from the thread pool.");
}
Main函数里ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc)); 即可。(注意WaitCallback系统委托),它的功能就像第2种方法里提到的new thread。
那么RegisterWaitForSingleObject是干什么的呢?这个方法的做用是向线程池添加一个可以定时执行的方法。有点像第一种方法里提到的timer线程,却不属于UI线程。
具体的使用如下:
AutoResetEvent wait = new AutoResetEvent(false);
object state = new object();
ThreadPool.RegisterWaitForSingleObject(wait, new WaitOrTimerCallback(test), state, 5000, false);
//5000是间隔调用的时间,也就是wait变量卡住的timeout时间(我觉得内部是这样实现的)
wait.Set(); //如果有set这句话,那么第一次执行不用等5秒,则直接执行目标函数,否则没这句话,第一次执行要等5秒的。
还有一个要注意:我平常使用的是ManualResetEvent,但在threadpool里,首先要选的是AutoResetEvent,因为AutoResetEvent能自动reset,所以下一次间隔来了,又要重新等待5秒钟,达到定时器的目的。如果是ManualResetEvent,要么一次执行不了(初始值为false),要么不间断的玩命执行。
ManualResetEvent和AutoResetEvent的另一个重要区别是前者能一次唤醒多个线程,而后者一次只能唤醒一个线程。
其实RegisterWaitForSingleObject函数的使用有点想我封装好的MyTimer类的实现了:我里面的while死循环里用了个wait.waitone(2000,false);即可。
对了,说到这里,RegisterWaitForSingleObject函数实现的定时器,如果手动停止呢?
这要用到Unregister函数:
RegisteredWaitHandle rw = ThreadPool.RegisterWaitForSingleObject(wait, new WaitOrTimerCallback(test), state, 3000, false);
rw.Unregister(wait);
嗯讨论了这么多线程的东西,干脆再说一个小点:Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的退出而退出
3. WebBrowser 怎么实现多线程
webbrowser是一个UI线程中的控件,在非UI线程中调用UI线程的方法,需要使用Invoke。
具体可以看这个:http://blog.csdn.net/aaaaatiger/article/details/3430672
4. .net中,如何在Web中使用Timer控件
c# 是 java 和 C 混合的产物。
.NET Framework 类库是一个由 Microsoft .NET Framework SDK 中包含的类、接口和值类型组成的库。该库提供对系统功能的访问,是建立 .NET Framework 应用程序、组件和控件的基础。
DotNet FrameWork所有的类都包含在命名空间里面。
命名空间
.NET Framework 类库提供下列命名空间:
▲Microsoft.CSharp
包含支持用 C# 语言进行编译和代码生成的类。
▲Microsoft.JScript
包含支持用 JScript 语言进行编译和代码生成的类。
▲Microsoft.VisualBasic
包含支持用 Visual Basic .NET 语言进行编译和代码生成的类。
▲Microsoft.Vsa
包含使您可以将 .NET Framework 脚本引擎的脚本集成到应用程序中以及在运行时编译和执行代码的接口。
▲Microsoft.Win32
提供两种类型的类:处理由操作系统引发的事件的类和对系统注册表进行操作的类。
▲System
包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、属性和处理异常的基础类和基类。
其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环境管理以及对托管和非托管应用程序的监管。
▲System.CodeDom
包含可用于表示源代码文档的元素和结构的类。这些元素可用于建立源代码文档的结构。通过使用 ▲System.CodeDom.Compiler 命名空间所提供的功能,可以将源代码文档输出为用受支持的语言编写的源代码。
▲System.CodeDom.Compiler
包含用于管理用受支持的编程语言生成和编译源代码的类型。每个代码生成器可根据“代码文档对象模型”(CodeDOM) 源代码模型的结构(由 ▲System.CodeDom 命名空间所提供的元素组成),用特定的某种编程语言生成源代码。
▲System.Collections
包含定义各种对象集合(如列表、队列、位数组、哈希表和字典)的接口和类。
▲System.Collections.Specialized
包含专用的强类型集合;例如,链接表词典、位向量以及只包含字符串的集合。
▲System.ComponentModel
提供用于实现组件和控件的运行时和设计时行为的类。此命名空间包括用于属性和类型转换器的实现、数据源绑定和组件授权的基类和接口。
▲System.ComponentModel.Design
包含可由开发人员用来生成自定义设计时组件行为和在设计时配置组件的用户界面的类。设计时环境提供了使开发人员能够安排组件并配置它们的属性的系统。
▲System.ComponentModel.Design.Serialization
提供支持在设计时自定义和控制序列化的类型。
▲System.Configuration
提供使您可以以编程方式访问 .NET Framework 配置设置和处理配置文件(.config 文件)中的错误的类和接口。
▲System.Configuration.Assemblies
包含用于配置程序集的类。
▲System.Configuration.Install
提供使您可以为自己的组件编写自定义安装程序的类。Installer 类是 .NET Framework 中所有自定义安装程序的基类。
▲System.Data
基本上由构成 ADO.NET 结构的类组成。ADO.NET 结构使您可以生成可用于有效管理多个数据源中的数据的组件。在断开连接的方案(如 Internet)中,ADO.NET 提供了一些可以在多层系统中请求、更新和协调数据的工具。ADO.NET 结构也可以在客户端应用程序(如 Windows 窗体)或 ASP.NET 创建的 HTML 页中实现。
▲System.Data.Common
包含由 .NET Framework 数据提供程序共享的类。.NET Framework 数据提供程序描述用于在托管空间中访问数据源(如数据库)的类的集合。
▲System.Data.Odbc
封装 ODBC .NET Framework 数据提供程序。.NET Framework 数据提供程序描述用于在托管空间中访问数据源(如数据库)的类的集合。通过使用 OdbcDataAdapter 类,可以填充驻留在内存中的 DataSet,使用它可以查询和更新数据源。
有关如何使用此命名空间的其他信息,请参见 OdbcDataReader、OdbcCommand 和 OdbcConnection 类。
注意:该命名空间仅在 .NET Framework 1.1 版中受支持。
▲System.Data.OleDb
封装 OLE DB .NET Framework 数据提供程序。OLE DB .NET Framework 数据提供程序描述了用于在托管空间中访问 OLE DB 数据源的类集合。
▲System.Data.OracleClient
封装 Oracle .NET Framework 数据提供程序。Oracle .NET Framework 数据提供程序描述了用于在托管空间中访问 Oracle 数据源的类集合。
注意:该命名空间仅在 .NET Framework 1.1 版中受支持。
▲System.Data.SqlClient
封装 SQL Server .NET Framework 数据提供程序。SQL Server .NET Framework 数据提供程序描述了用于在托管空间中访问 SQL Server 数据库的类集合。
▲System.Data.SqlServerCE
描述可用于在托管环境下从基于 Windows CE 的设备访问 SQL Server CE 中的数据库的类集合。通过此命名空间,可以在一个设备上创建 SQL Server CE 数据库,并且可以与另一个设备或远程服务器上的 SQL Server 数据库建立连接。
注意:该命名空间仅在 .NET Framework 1.1 版中受支持。
▲System.Data.SqlTypes
提供用于 SQL Server 中的本机数据类型的类。这些类提供了其他数据类型的更安全、更快速的替代物。使用此命名空间中的类有助于防止在可能发生精度损失的情况中出现的类型转换错误。由于其他数据类型与 SqlTypes 在后台相互转换,因此在此命名空间内显式创建和使用对象同样会产生较快的代码。
▲System.Diagnostics
提供允许与系统进程、事件日志和性能计数器进行交互的类。此命名空间还提供了使您可以调试应用程序和跟踪代码执行的类。有关更多信息,请参见 Trace 和 Debug 类。
▲System.Diagnostics.SymbolStore
提供使您可以读取和写入调试符号信息(如 Microsoft 中间语言 (MSIL) 映射的源行)的类。面向 .NET Framework 的编译器可以将调试符号信息存储到程序员的数据库 (PDB) 文件中。调试器和代码分析器工具可以在运行时读取调试符号信息。
▲System.DirectoryServices
提供从托管代码轻松访问 Active Directory 的方法。此命名空间包含两个组件类:DirectoryEntry 和 DirectorySearcher。这两个类使用 Active Directory 服务接口 (ADSI) 技术。ADSI 是由 Microsoft 提供的一组接口,是一种可灵活处理各种网络提供程序的工具。ADSI 使管理员能够相对轻松地查找和管理网络资源,不论网络规模有多大。
▲System.Drawing
提供对 GDI 基本图形功能的访问。▲System.Drawing.Drawing2D、▲System.Drawing.Imaging 和 ▲System.Drawing.Text 命名空间提供了更高级的功能。
▲System.Drawing.Design
包含扩展设计时用户界面 (UI) 逻辑和绘制的类。可以进一步扩展此设计时功能来创建以下对象:自定义工具箱项,类型特定的值编辑器或类型转换器,其中类型特定的值编辑器用于编辑和以图形方式表示所支持的类型的值;类型转换器用于在特定的类型之间转换值。此命名空间提供了开发设计时用户界面扩展的基本框架。
▲System.Drawing.Drawing2D
提供高级的二维和向量图形功能。此命名空间包括渐变画笔、Matrix 类(用于定义几何转换)和 GraphicsPath 类。
▲System.Drawing.Imaging
提供高级的 GDI 图像处理功能。基本图形功能由 ▲System.Drawing 命名空间提供。
▲System.Drawing.Printing
提供与打印相关的服务。通常情况下,您可以创建 PrintDocument 类的实例,设置描述打印内容的属性,然后调用 Print 方法实际打印文档。
▲System.Drawing.Text
提供高级的 GDI 版式功能。基本图形功能由 ▲System.Drawing 命名空间提供。此命名空间中的类使用户可以创建和使用字体集合。
▲System.EnterpriseServices
为企业级应用程序提供重要的基础结构。COM 为企业级环境中部署的组件编程模型提供服务结构。此命名空间为 .NET Framework 对象提供了对 COM 服务的访问,从而使 .NET Framework 对象更适用于企业级应用程序。
▲System.EnterpriseServices.CompensatingResourceManager
提供使您可以在托管代码中使用补偿资源管理器 (CRM) 的类。CRM 是由 COM 提供的一项服务,它使您可以在 Microsoft 分布式事务处理协调器 (DTC) 事务中包括非事务性对象。虽然 CRM 不提供完整资源管理器的功能,但它们却通过恢复日志提供事务性原子性(全有或全无行为)和持久性。
▲System.EnterpriseServices.Internal
提供 COM 服务的基础结构支持。此命名空间中的类和接口专门用于支持从非托管 COM 类调入 ▲System.EnterpriseServices。
▲System.Globalization
包含定义区域性相关信息的类,这些信息包括语言、国家/地区、正在使用的日历、日期的格式模式、货币、数字以及字符串的排序顺序。这些类对于编写全球化(国际化)应用程序很有用。
▲System.IO
包含允许对数据流和文件进行同步和异步读写的类型。
▲System.IO.IsolatedStorage
包含允许创建和使用独立存储区的类型。通过使用这些存储区,可以读写入受信任程度较小的代码无法访问的数据,并且可以防止公开可保存在文件系统中其他位置的敏感信息。数据存储在独立于当前用户和代码所在的程序集的数据舱中。
▲System.Management
提供对一组丰富的管理信息和管理事件(它们是关于符合 Windows Management Instrumentation (WMI) 基础结构的系统、设备和应用程序的)的访问。
▲System.Management.Instrumentation
提供在规范应用程序管理并通过 WMI 向潜在使用者公开管理信息和事件时必需的类。这样,Microsoft Application Center 或 Microsoft Operations Manager 等使用者就可以轻松地管理您的应用程序,而管理员脚本或其他应用程序(托管应用程序和非托管应用程序)也可以监视和配置您的应用程序。
▲System.Messaging
提供使您可以连接、监视和管理网络上的消息队列以及发送、接收或查看消息的类。
▲System.Net
为当前网络采用的多种协议提供简单的编程接口。WebRequest 和 WebResponse 类构成了所谓的可插接式协议的基础,该协议是一种网络服务的实现,它使您可以开发使用 Internet 资源的应用程序,而不必考虑各个协议的具体细节。
▲System.Net.Sockets
为需要严格控制网络访问的开发人员提供 Windows 套接字 (Winsock) 接口的托管实现。
▲System.Reflection
包含提供已加载类型、方法和字段的托管视图的类和接口,并具有动态创建和调用类型的能力。
▲System.Reflection.Emit
包含允许编译器或工具发出元数据和 Microsoft 中间语言 (MSIL) 并在磁盘上生成 PE 文件(可选)的类。这些类的主要客户端是脚本引擎和编译器。
▲System.Resources
提供允许开发人员创建、存储和管理应用程序中使用的各种区域性特定资源的类和接口。
▲System.Runtime.CompilerServices
为使用托管代码的编译器编写器提供功能,以在影响公共语言运行库的运行时行为的元数据中指定属性。此命名空间中的类只用于编译器编写器。
▲System.Runtime.InteropServices
提供各种支持 COM Interop 和平台调用服务的成员。如果对这些服务不熟悉,请参见与非托管代码交互操作。
▲System.Runtime.InteropServices.CustomMarshalers
支持 .NET 基础结构,不在代码中直接使用。
▲System.Runtime.InteropServices.Expando
包含 IExpando 接口,此接口允许通过添加或移除对象的成员来修改对象。
▲System.Runtime.Remoting
提供允许开发人员创建和配置分布式应用程序的类和接口。
▲System.Runtime.Remoting.Activation
提供支持服务器和客户端远程对象激活的类和对象。
▲System.Runtime.Remoting.Channels
包含支持和处理信道和信道接收器的类,这些信道和信道接收器在客户端对远程对象调用方法时用作传输媒介。
▲System.Runtime.Remoting.Channels.Http
包含使用 HTTP 协议与远程位置之间相互传输消息和对象的信道。默认情况下,HTTP 信道以 SOAP 格式对对象和方法调用进行编码以便传输,但在信道的配置属性中也可以指定其他编码和解码格式化程序接收器。
▲System.Runtime.Remoting.Channels.Tcp
包含使用 TCP 协议与远程位置之间相互传输消息和对象的信道。默认情况下,TCP 信道以二进制格式对对象和方法调用进行编码以便传输,但在信道的配置属性中也可以指定其他编码和解码格式化程序接收器。
▲System.Runtime.Remoting.Contexts
包含定义所有对象所驻留的上下文的对象。上下文是一个有序的属性序列,用于定义其中的对象所处的环境。上下文是在对象的激活过程中创建的,这些对象被配置为要求某些自动服务,如同步、事务、实时 (JIT) 激活、安全性等。多个对象可以存留在一个上下文内。
▲System.Runtime.Remoting.Lifetime
包含管理远程对象生存期的类。传统上,分布式垃圾回收功能使用引用计数和 Ping 来控制对象的生存期。这种机制在每一项服务只有较少的客户端时可以正常工作,但是当每一项服务有几千个客户端时就不能正常工作了。远程处理生存期服务将每一项服务与一个租约关联,当租约到期时,就会删除该服务。生存期服务可以起到传统的分布式垃圾回收器的作用,并且当每一项服务的客户端数量增加时也能很好地调整。
▲System.Runtime.Remoting.Messaging
包含用于创建和远程处理消息的类。远程处理基础结构使用消息与远程对象进行通信。消息用于传输远程方法调用、激活远程对象和交流信息。消息对象携带一组命名属性,其中包括操作标识符、代表信息和参数。
▲System.Runtime.Remoting.Metadata
包含可用于为对象和字段自定义 SOAP 的生成和处理的类和属性。此命名空间中的类可用于指示 SOAPAction、类型输出、XML 元素名和 XML 命名空间 URI 方法。
▲System.Runtime.Remoting.Metadata.W3cXsd2001
包含由万维网联合会 (W3C) 在 2001 年定义的 XML 架构定义 (XSD)。W3C 中的“XML Schema Part2: Data types”(XML 架构第二部分:数据类型)规范确定了各种数据类型的格式和行为。此命名空间包含符合 W3C 规范的数据类型的包装类。所有日期和时间类型都符合 ISO 标准规范。
▲System.Runtime.Remoting.MetadataServices
包含由 Soapsuds.exe 命令行工具和用户代码用来在元数据和远程处理基础结构的 XML 架构之间相互转换的类。
▲System.Runtime.Remoting.Proxies
包含控制和提供代理功能的类。代理是作为远程对象映像的本地对象。代理使客户端可以跨远程处理边界访问对象。
▲System.Runtime.Remoting.Services
包含为 .NET Framework 提供功能的服务类。
▲System.Runtime.Serialization
包含可用于序列化和反序列化对象的类。序列化是将对象或对象图转换为线性的字节序列以存储或传输到其他位置的过程。反序列化是接受存储的信息并用这些信息重新创建对象的过程。
▲System.Runtime.Serialization.Formatters
提供由序列化格式化程序使用的通用枚举、接口和类。
▲System.Runtime.Serialization.Formatters.Binary
包含可用于以二进制格式序列化和反序列化对象的 BinaryFormatter 类。
▲System.Runtime.Serialization.Formatters.Soap
包含可用于以 SOAP 格式序列化和反序列化对象的 SoapFormatter 类。
▲System.Security
提供 .NET Framework 安全系统的基础结构,包括权限的基类。
▲System.Security.Cryptography
提供加密服务,包括数据的安全编码和解码,以及其他许多操作,如哈希处理、随机数生成和消息身份验证。
▲System.Security.Cryptography.X509Certificates
包含 Authenticode X.509 v.3 证书的公共语言运行库实现。此证书用唯一明确标识证书持有者的私钥签名。
▲System.Security.Cryptography.XML
包含支持创建和验证 XML 数字签名的类。此命名空间中的类贯彻了万维网联合会 (W3C) 建议“XML-Signature Syntax and Processing”(XML 签名语法和处理),详见 http://www.w3.org/TR/xmldsig-core/" http://www.w3.org/TR/xmldsig-core/。
▲System.Security.Permissions
定义根据策略控制操作和资源访问的类。
▲System.Security.Policy
包含代码组、成员条件和证据。这三种类型的类用于创建由 .NET Framework 安全策略系统应用的规则。证据类是安全策略的输入,成员条件是开关;二者共同创建策略语句并确定授予的权限集。策略级别和代码组是策略层次的结构。代码组是规则的封装并且在策略级别中分层排列。
▲System.Security.Principal
定义表示运行代码的安全上下文的主体对象。
▲System.ServiceProcess
提供使您可以实现、安装和控制 Windows 服务应用程序的类。服务是不需要用户界面长期运行的可执行文件。实现服务的过程包括:从 ServiceBase 类继承,定义在传入启动、停止、暂停和继续命令时处理的特定行为,以及定义当系统关闭时所采取的自定义行为和操作。
▲System.Text
包含表示 ASCII、Unicode、UTF-7 和 UTF-8 字符编码的类;用于在字符块和字节块之间相互转换的抽象基类;以及不需要创建字符串的中间实例就可以操作和格式化字符串对象的帮助器类。
▲System.Text.RegularExpressions
包含提供对 .NET Framework 正则表达式引擎的访问的类。此命名空间提供的正则表达式功能可在 Microsoft .NET Framework 中运行的任何平台或语言上使用。
▲System.Threading
提供支持多线程编程的类和接口。除了用于同步线程活动和数据访问的类(Mutex、Monitor、Interlocked、AutoResetEvent 等)外,此命名空间还包括一个 ThreadPool 类(使您可以使用系统提供的线程池)和一个 Timer 类(对线程池中的线程执行回调方法)。
▲System.Timers
提供允许以指定的间隔引发事件的 Timer 组件。
▲System.web
提供支持浏览器/服务器通信的类和接口。此命名空间包括 HTTPRequest 类(它提供有关当前 HTTP 请求的大量信息),HTTPResponse 类(它管理 HTTP 到客户端的输出)和 HTTPServerUtility 对象(它提供对服务器端实用工具和进程的访问)。▲System.Web 还包括用于 Cookie 操作、文件传输、异常信息和输出缓存控制的类。
▲System.Web.Caching
提供用于在服务器上缓存常用数据的类。其中包括 Cache 类,该类是一个字典,您可以在其中存储任意数据对象,如哈希表和数据集。它还为这些对象提供了失效功能,并为您提供了添加和移除这些对象的方法。您也可以添加依赖于其他文件或缓存项的对象,并在某个对象从 Cache 中被移除时执行回调以通知您的应用程序。
▲System.Web.Configuration
包含用于设置 ASP.NET 配置的类。
▲System.Web.Hosting
提供从 Microsoft Internet 信息服务 (IIS) 的外部托管应用程序承载 ASP.NET 应用程序的功能。
▲System.Web.Mail
包含使您能够使用 CDOSYS 消息组件构造和发送消息的类。邮件消息通过 Microsoft Windows 2000 中内置的 SMTP 邮件服务或任意的 SMTP 服务器发送。此命名空间中的类可从 ASP.NET 或任何托管应用程序中使用。
▲System.Web.Mobile
包含生成 ASP.NET 移动 Web 应用程序所需的核心功能,其中包括身份验证和错误处理。
▲System.Web.Security
包含用于在 Web 服务器应用程序中实现 ASP.NET 安全的类。
▲System.Web.Services
包含使您可以利用 ASP.NET 和 XML Web services 客户端来创建 XML Web services 的类。XML Web services 是一些应用程序,它们提供了在使用标准协议(如 HTTP、XML、XSD、SOAP 和 WSDL)的松耦合环境下进行消息交换的能力。利用 XML Web services,可以在异质环境下的公司内部和公司之间生成模块化应用程序,使它们与各种各样的实现、平台和设备交互操作。这些应用程序基于 SOAP 的 XML 消息的各部分可以是严格定义的(结构化和类型化)或松散定义的(使用任意 XML)。这些消息能够随时间而发展,并且不会破坏协议,这种能力对于作为未来 Web 构造块的 XML Web services 的灵活性和可靠性来说是最根本的。
▲System.Web.Services.Configuration
由一些类组成,这些类配置用 ASP.NET 创建的 XML Web services 的运行方式。
▲System.Web.Services.Description
由一些类组成,这些类使您能够使用 Web 服务描述语言 (WSDL) 公开描述 XML Web services。此命名空间中的每个类对应于 WSDL 规范中的一个特定元素,并且类层次结构对应于有效的 WSDL 文档的 XML 结构。
▲System.Web.Services.Discovery
由一些类组成,这些类允许 XML Web services 客户端通过称为“XML Web services 发现”的进程来定位 Web 服务器上可用的 XML Web services。
▲System.Web.Services.Protocols
由一些类组成,这些类定义用于在通信期间通过网络在 XML Web services 客户端和用 ASP.NET 创建的 XML Web services 之间传输数据的协议。
▲System.Web.SessionState
提供支持在服务器上存储特定于 Web 应用程序中的单个客户端的数据的类和接口。会话状态数据用于向客户端提供与应用程序的持久连接的外观。状态信息可以存储在本地进程内存中,或者,对于网络场配置来说,可以使用 ASP.NET 状态服务或 SQL Server 数据库将状态信息存储在进程外。
▲System.Web.UI
提供使您可以创建以 Web 页上的用户界面形式出现在 Web 应用程序中的控件和页的类和接口。此命名空间包括 Control 类,该类为所有控件(不论是 HTML 控件、Web 控件还是用户控件)提供一组通用功能。它还包括 Page 控件,每当对 Web 应用程序中的页发出请求时,都会自动生成此控件。另外还提供了一些类,这些类提供 Web 窗体服务器控件数据绑定功能、保存给定控件或页的视图状态的能力,以及对可编程控件和文本控件都适用的分析功能。
▲System.Web.UI.Design
包含可用于扩展 Web 窗体设计时支持的类。
▲System.Web.UI.Design.WebControls
包含可用于扩展 Web 服务器控件设计时支持的类。
▲System.Web.UI.HtmlControls
包含使您可以在 Web 窗体页上创建 HTML 服务器控件的类集合。HTML 服务器控件运行在服务器上,并且直接映射到大多数浏览器所支持的标准 HTML 标记。这使您能够以编程方式控制 Web 窗体页上的 HTML 元素。
▲System.Web.UI.MobileControls
包含一组 ASP.NET 服务器控件,这些控件可以针对不同的移动设备智能地呈现您的应用程序。
▲System.Web.UI.MobileControls.Adapters
包含由 ASP.NET 移动控件用来自定义设备和支持扩展设备的核心设备适配器类。
▲System.Web.UI.WebControls
包含使您可以在 Web 页上创建 Web 服务器控件的类。Web 服务器控件运行在服务器上,并且包括按钮和文本框等窗体控件。它们还包括类似于日历的特殊控件。由于 Web 服务器控件运行在服务器上,因此可以以编程方式来控制这些元素。Web 服务器控件比 HTML 服务器控件更抽象。它们的对象模型不一定反映 HTML 语法。
▲System.Windows.Forms
包含用于创建基于 Windows 的应用程序的类,这些应用程序可以充分利用 Microsoft Windows 操作系统中的丰富用户界面功能。
▲System.Windows.Forms.Design
包含支持 Windows 窗体组件的设计时配置和行为的类。这些类包括:提供 Windows 窗体组件(即一组设计时服务)支持的设计器类、用于配置特定属性类型的 UITypeEditor 类,以及用于导入 ActiveX 控件的类。
▲System.Xml
提供基于标准的 XML 处理支持。
▲System.Xml.Schema
包含提供基于标准的 XML 架构定义语言 (XSD) 架构支持的 XML 类。
▲System.Xml.Serialization
包含用于将对象序列化为 XML 格式的文档或流的类。
▲System.Xml.XPath
包含 XPath 分析器和计算引擎。它支持 W3C XML 路径语言 (XPath) 1.0 版建议 (http://www.w3.org/TR/xpath" www.w3.org/TR/xpath)。
▲System.Xml.Xsl
提供可扩展样式表转换 (XSLT) 转换支持。它支持 W3C XSL 转换 (XSLT) 1.0 版建议 (http://www.w3.org/TR/xslt" www.w3.org/TR/xslt)。
用法
参考资料:MSDN
5. ASP.NET WebForm中有多线程的概念吗
WebForm(应该说B/S)天生就是多线程的,只是它的多线程机制是由ASP.NET完成的,用户根本感觉不到,
比如多个用户请求服务器,每个用户的请求都是由一个单独的线程处理的,
但开发人员却没有必要使用多线程,原因是这样的:
在Winforms中使用多线程,多数是为了解决因程序执行时间过长,引起的用户界面长时间无响应,
但在Webforms中,请求处理是在服务端执行,客户端的浏览器本身就是多线程,因此无需在服务端使用多线程,
6. 在.NET中使用多线程可以用在哪些地方!有实际的教程给我嘛
比如有好多个文件需要下载,可以启动多个线程同时下。
7. 多线程(.net)
通过设置信号来让线程停下来或让线程重新启动
AutoResetEvent 一次只唤醒一个线程,而 ManualResetEvent 可以唤醒多个线程。
AutoResetEvent.WaitOne() 每次只允许一个线程进入,当某个线程得到信号后, AutoResetEvent 会自动将信号设置为不发送状态, 其他调用 WaitOne 的线程只有继续等待.
当某个线程调用了ManualResetEvent.Set() 方法后,除非手工调用 ManualResetEvent.Reset()方法,否则 ManualResetEvent 将一直保持有信号状态,其他调用 WaitOne 的线程获得信号得以继续执行。
为多个线程共享的变量提供原子操作。
如果一条语句在底层处理器上被当作一个独立不可分割的指令,那么它本质上是原子的(atomic)。严格的原子性可以阻止任何抢占的可能。对于 32 位(或更低)的字段的简单读写总是原子的。而操作 64 位字段仅在 64 位运行时环境下是原子的,并且结合了多个读写操作的语句必然不是原子的:
应使用常量进行exchange后的对比逻辑,因为使用变量,读变量未必原子性( 使用 Interlocked.Exchange 进行逻辑判断 Debug 与 Release 模式不一致的经验教训 )
When should the volatile keyword be used in C#?
Sayonara volatile
c# - Volatile keyword usage vs lock
Understand the Impact of Low-Lock Techniques in Multithreaded Apps
双重检查锁定(延迟初始化):
使用布尔值指示初始化
WaitHandle.WaitAll
[参考]
C# 理解 AutoResetEvent 和 ManualResetEvent
ManualResetEvent
volatile
C# Interlocked 笔记
Interlocked 类
ReaderWriterLockSlim
ThreadPool 类
ThreadPool.QueueUserWorkItem
WaitHandle.WaitAll
C# 线程安全集合
为什么 Redis 选择单线程模型 [ 注:Redis知识领域中剖析精华 ]
8. NET中的多线程如何停止才正确
建立一个主对象,有发出的线程数(分配线程时确定,并在分配时确定每个线程Guid)、已完成的线程数(初始为0)、异常的线程数(初始为0)、以及回调事件、
待处理的链表集合(应含有Guid值)等。每个子线程完成时都会触发一个完成事件或异常事件,主对象捕获这个事件,并比对Guid,并且将已完成的线程数累计(累计时需加锁该属性)以及获取该线程返回的新表,将保存到主对象中,当累计数与分配数相等时,则合并,并由主线程进行后继操作。就不需要while,并且可用多个实例。
9. asp.net用多线程上传大文件(500MB~2G)
大文件上传,进度条效果推荐你用uploadify插件结合asp.net来做,这个的实现网上有例子,我这里自己也做了一个,上传页面是uploadify3.2/index.html ,上传处理程序是upload.ashx。用vs2010制作,需要framework4.0环境的支持。 经测试打文件上传功能已经稳定,,进度条显示效果友好。
最近打算把原来的asp网站改成asp.net的,所以做了这个,你可以参考一下。