C#知识园
文章平均质量分 86
stevenjin
怎么说。。。多着呢
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c#中的委托和事件的简单实例_c#应用
在C#中使用一个类时,分两个阶段。首先需要定义这个类,即告诉编译器这个类由什么字段和方法组成。然后(除非只使用静态方法)实例化类的一个对 象。使用委托时,也需要经过这两个步骤。首先定义要使用的委托,对于委托,定义它就是告诉编译器这种类型的委托代表了哪种类型的方法,然后创建该委托的一 个或多个实例。编译器在后台将创建表示该委托的一个类。定义委托的语法如下:delegate void IntMet转载 2008-05-07 00:54:00 · 1500 阅读 · 0 评论 -
C#中的几个线程同步对象方法教程
在编写多线程程序时无可避免会遇到线程的同步问题。什么是线程的同步呢? 举个例子:如果在一个公司里面有一个变量记录某人T的工资count=100,有两个主管A和B(即工作线程)在早一些时候拿了这个变量的值回去 ,过了一段时间A主管将T的工资加了5块,并存回count变量,而B主管将T的工资减去3块,并存回count变量。好了,本来T君可以得到102块的工资的,现在就变成98块了。这就是线程同步要解决原创 2008-05-24 05:09:00 · 792 阅读 · 0 评论 -
c#.net多线程编程教学(3):线程同步`
随着对多线程学习的深入,你可能觉得需要了解一些有关线程共享资源的问题. .NET framework提供了很多的类和数据类型来控制对共享资源的访问。 考虑一种我们经常遇到的情况:有一些全局变量和共享的类变量,我们需要从不同的线程来更新它们,可以通过使用System.Threading.Interlocked类完成这样的任务,它提供了原子的,非模块化的整数更新操作。 还有你可以使用Syste原创 2008-05-23 12:39:00 · 646 阅读 · 0 评论 -
同步类MethodImplAttribute的使用
System.Runtime.ComplierService命名空间包含的一些属性将影响CLR在运行时的行为。MethodImplAttribute的一个构造函数把MethodImplOption枚举作为其参数。MethodImplOptions枚举有一个字段Synchronized,它指定在任一时刻只允许一个线程访问这个方法。但它不处理静态字段和方法的同步。如果必须同步特定代码块,它也不起作原创 2008-05-23 13:15:00 · 2124 阅读 · 0 评论 -
同步代码区Monitor类的使用
Monitor类用于同步代码区,其方法是使用Monitor.Enter()方法获得一个锁,然后,使用Monitor.Exit()方法释放该锁。一个线程获得锁,其他线程就要等到该锁释放后才能使用。一旦在代码区上获取了一个锁,就可以在Monitor.Enter()和Monitor.Exit()程序块内使用如下方法: Wait()-此方法用于释放对象上的锁,并暂停当前线程,直到它重新获得锁。原创 2008-05-23 14:50:00 · 1092 阅读 · 0 评论 -
c#基础概念之internal 修饰符有什么作用
internal 修饰符可以用于类型或成员,使用该修饰符声明的类型或成员只能在同一程集内访问接口的成员不能使用 internal 修饰符值得注意的是,如果为 internal 成员加上了 protected 修饰符,这时的访问级别为 internal 或 protected。只是看字面意思容易弄错,许多人认为 internal protected 应该是“只有同一个程序集中的子类可以访问”转载 2008-05-23 16:19:00 · 4148 阅读 · 0 评论 -
C#多线程学习(四) 多线程的自动管理(线程池)
在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应 这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒 这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维转载 2008-05-25 00:55:00 · 942 阅读 · 0 评论 -
ReaderWriterLock类
ReaderWriterLock类定义了实现单写程序和多读程序语义的锁。这个类主要用于文件操作,即多个线程可以读取文件,但只能用一个线程来更新文件。使用ReaderWriterLock类时,任意数量的线程都可以同时安全地读取数据。只有当线程进行更新时,数据才被锁定。只有在没有占用锁的写程序线程时,读程序线程才能获得锁。只有在没有占用锁的读程序或者写程序线程时,写程序线程才能获得锁。ReaderWr原创 2008-05-24 01:08:00 · 2224 阅读 · 3 评论 -
AutoResetEvent详解
不是线程的非终止状态是事件的非终止状态,AutoResetEvent形象说就像一个水龙头一样,当你关闭水龙头,状态就是关闭(终止状态),所有的水都在里面等待流出来,当水龙头打开,就发送一个事件说里面的水可以出来了,这时就是非终止状态,一般是用来同步访问资源AutoResetEvent类的对象,如ManualResetEvent对象一样,大家可以把它简单地理解为一个信号灯,使用 AutoRese转载 2008-05-24 13:36:00 · 2186 阅读 · 2 评论 -
数组,这个居然还不知道!
class Program { static void Main(string[] args) { string str = "321"; for (int i = 0; i { Console.WriteLine("{0}",str[原创 2008-06-01 14:03:00 · 545 阅读 · 0 评论 -
连接线程Join()方法
Join()方法会暂停给定的线程。连接两个线程的意思就是调用Join()方法时,运行着的线程将进入WaitSleepJoin状态,而直到调用Join()方法的线程完成了任务,该线程才会返回到Running状态。using System;using System.Threading;namespace thread...{ public class JoiningThread .原创 2008-05-23 01:19:00 · 1567 阅读 · 0 评论 -
c#.net多线程编程教学(2):Thread类
这章将向大家介绍.NET中的线程API,怎么样用C#创建线程,启动和停止线程,设置优先级和状态. 在.NET中编写的程序 将被自动的分配一个线程.让我们来看看用C#编程语言创建线程并且继续学习线程的知识。我们都知道.NET的运行时环境的主线程由Main ()方法来启动应用程序,而且.NET的编译语言有自动的垃圾收集功能,这个垃圾收集发生在另外一个线程里面,所有的这些都是后台发生的,让我们无法感觉原创 2008-05-22 15:46:00 · 663 阅读 · 0 评论 -
ThreadPool(线程池)
在多线程的程序中,经常会出现两种情况。一种情况下,应用程序中的线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应;而另外一种情况则是线程平常都处于休眠状态,只是周期性地被唤醒。这里分析及介绍.Net Framework中ThreadPool class来对付第一种情况,相应地也会谈到QueueUserWorkItem方法和WaitCallback委托。而使用Timer(原创 2008-05-24 16:30:00 · 1874 阅读 · 1 评论 -
C#中的事件与代理
源文出处: http://www.akadia.com/services/dotnet_delegates_and_events.html译文如下:翻译 2008-05-07 01:56:00 · 485 阅读 · 0 评论 -
在指定的应用程序域中执行代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;namespace thread...{ class MyAppDomain ...{ static void Main(string原创 2008-05-20 13:58:00 · 733 阅读 · 1 评论 -
线程优先级
线程优先级包括: Highest(最高级) AboveNormal(高于正常值) Normal(正常值) BelowNormal(低于正常值) Lowest(最低值)using System;using System.Collections.Generic;using System.Linq;usi原创 2008-05-20 20:41:00 · 642 阅读 · 0 评论 -
在一个线程中产生多个线程
在StartTheEnginee()方法中,创建3个线程,然后依次启动每一个线程。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;using System.Threading;namespace thread...{原创 2008-05-22 10:53:00 · 1281 阅读 · 0 评论 -
线程的属性和方法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;using System.Threading;namespace thread{ class MyAppDomain { static void Wor原创 2008-05-20 19:32:00 · 645 阅读 · 0 评论 -
应用程序域 (application domain) (AppDomain)
一种边界,它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在 一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域。 以前使用进程边界来隔离在同一台计算机上运行的应用程序。每一个应用程序被加载到单独的进程中,这样就将该应用程序与在同一台计算机上原创 2008-05-20 09:53:00 · 612 阅读 · 0 评论 -
AppDomain浅析与实例
我们知道,进程是操作系统用于隔离众多正在运行的应用程序的机制。在.Net之前,每一个应用程序被加载到单独的进程中,并为该进程指定私有的虚拟内存。进程不能直接访问物理内存,操作系统通过其它的处理把这些虚拟内存映射到物理内存或IO设备的某个区域,而这些物理内存之间不会有重叠,这就决定了一个进程不可能访问分配给另一个进程的内存。相应地,运行在该进程中的应用程序也不可能写入另一个应用程序的内存,这原创 2008-05-20 12:57:00 · 2816 阅读 · 2 评论 -
创建线程
线程用Thread类来创建, 通过ThreadStart委托来指明方法从哪里开始运行,using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics;using System.Threading;namespace thread...{原创 2008-05-20 15:48:00 · 505 阅读 · 0 评论 -
ManualResetEvent类的用法
ManualResetEvent对象只能拥有两种状态之一:有信号(True)或无信号(false)。ManualResetEvent类继承于WaitHandle类,其构造函数的参数可确定对象的初始状态。Set()和Reset()方法返回一个布尔值,表示是否进行了成功的修改。为了把状态修改为有信号的,必须调用Set()方法。为了把状态修改为无信号的,必须调用ReSet()方法。WaitOnly()方原创 2008-05-24 05:03:00 · 840 阅读 · 0 评论 -
访问自定义控件的私有属性
通过自定义控件的Get()和Set()方法,可以在加入用户控件的网页中访问其私有属性。1.在自定义控件加两个文本框,ID分别设为name,password。代码文件编写如下: public partial class WebUserControl1 : System.Web.UI.UserControl { protected void Page_Load(object sen原创 2008-06-03 03:47:00 · 780 阅读 · 0 评论
分享