.NET(C#) Hashtable Dictionary 探索 2008-11-18 21:36 先看下面的代码 using System;using System.Collections;namespace NoSortHashtable{ /// /// Summary description for Class1. /// class Class1 ...
NET
原创 2008-11-23 11:54:00
83阅读
自动属性默认初始化使用方法:public string Name { get; set; } = "hello world";为了便于理解使用2.0语法展示,编译器生成代码如下: public class Customer  {  [CompilerGener
转载 精选 2015-07-22 09:03:00
522阅读
expression代表你希望跟踪的对象,通常是对象引用。一般地,如果你想保护一个类的实例
原创 2022-11-26 23:51:09
109阅读
大家可以看到,在上面的例程中,同步是通过等待Monitor.Pulse()来完成的。首先生产者生产了一个值,而同一时刻消费者处于等待状态,直到收到生产者的“脉冲(Pulse)”通知它生产已经完成,此后消费者进入消费状态,而生产者开始等待消费者完成操作后将调用Monitor.Pulese()发出的“脉冲”。它的执行结果很简单:  Produce: 1  Con
原创 2022-11-27 08:11:02
369阅读
下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。线程入口使程序知道该让这个线程干什么事,在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或
原创 2022-11-27 08:11:18
100阅读
C#中,指针是一个存储其他变量地址的变量。它们在C#中并不常用,因为C#是一种安全的语言,旨在防止程序员直接访问内存地址。但了解指针的基本概念对于理解C#的运行机制以及某些性能优化是非常有帮助的。一、指针的基本概念指针是一个变量,其值为另一个变量的内存地址。通过使用指针,我们可以间接地访问和修改变量的值。在C#中,我们使用unsafe关键字来声明一个指针。二、指针的声明和初始化要声明一个指针,你
原创 2024-01-30 10:33:32
104阅读
C#委托本质探索 一、初试委托// 初听委托,看字面的意思,我理解成:一个人委托另一个人做某件事.// 按照这个想法,设计了下面这个测试程序// 领导委托下属做某件事.using System;using System.Collections.Generic;using System.Text;using System
转载 精选 2013-08-21 15:04:33
548阅读
​​​​​阅读目录:​​自动属性默认初始化​​​​自动只读属性默认初始化​​​​表达式为主体的函数​​​​表达式为主体的属性(赋值)​​​​静态类导入​​​​Null条件运算符​​​​字符串格式化​​​​索引初始化​​​​异常过滤器when​​​​catch和finally代码块内的Await​​​​nameof表达式​​​​扩展方法​​​​总结​​ 自动属性默认初始化使用方法:public st
转载 2015-08-28 14:05:00
129阅读
2评论
大家可以看到,在上面的例程中,同步是通过等待Monitor.Pulse()来完成的。首先生产者生产了一个值,而同一时刻消费者处于等待状态,直到收到生产者的“脉冲(Pulse)”通知它生产已经完成,此后消费者进入消费状态,而生产者开始等待消费者完成操作后将调用Monitor.Pulese()发出的“脉冲”。它的执行结果很简单: Produc...
转载 2007-12-19 11:11:00
61阅读
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace ConsoleApplicatio...
转载 2018-04-06 17:31:00
193阅读
2评论
然后在下面这个类MonitorSample的Main()函数中我们要做的就是创建两个线程分别作为生产者和消费者,使用CellProd.ThreadRun()方法和CellCons.ThreadRun()方法对同一个Cell对象进行操作。 public class MonitorSample { public static void Main(String[] args) { int result = 0; file://一个标志位,如果是0表示程序没有出错,如果是1表明有错误发生 Cell cell = new Cell( ); //下面使用cell初始化CellProd和CellCons两.
转载 2011-03-09 13:23:00
65阅读
2评论
首先,我们定义一个被操作的对象的类Cell,在这个类里,有两个方法:ReadFromCell()和WriteToCell。消费者线程将调用ReadFromCell()读取cellContents的内容并且显示出来,生产者进程将调用WriteToCell()方法向cellContents写入数据。 public class Cell { int cellContents; // Cell对象里边的内容 bool readerFlag = false; // 状态标志,为true时可以读取,为false则正在写入 public int ReadFromCell( ) { lock(this) //
转载 2011-03-09 13:15:00
54阅读
2评论
expression代表你希望跟踪的对象,通常是对象引用。一般地,如果你想保护一个类的实例,你可以使用this;如果你希望保护一个静态变量(如互斥代码段在一个静态方法内部),一般使用类名就可以了。而statement_block就是互斥段的代码,这段代码在一个时刻内只可能被一个线程执行。 下面是一个使用lock关键字的典型例子,我将在注释里向大家说明lock关键字的用法和用途: //lock.cs using System; using System.Threading; internal class Account { int balance; Random r = new Random()
转载 2011-03-09 11:42:00
35阅读
2评论
在这里我们要注意的是其它线程都是依附于Main()函数所在的线程的,Main()函数是C#程序的入口,起始线程可以称之为主线程,如果所有的前台线程都停止了,那么主线程可以终止,而所有的后台线程都将无条件终止。而所有的线程虽然在微观上是串行执行的,但是在宏观上你完全可以认为它们在并行执行。   读者一定注意到了Thread.ThreadState这个属性,
原创 2022-11-27 08:10:48
85阅读
 注:本文中出现的代码均在.net Framework RC3环境中运行通过  
原创 2022-11-27 16:11:40
90阅读
引言在C#编程中,委托(Delegate)和事件(Event)是两个非常重要的概念,它们为.NET框架提供了强大的事件驱动编程模型。本文将深入探讨C#中的委托与事件,通过实例代码说明它们的使用场景、工作原理及在软件开发中的重要作用。为什么要着重写关于委托的文章呢,因为委托实在是太重要了而且是太常用了,作为开发者你一定要会使用委托,以及事件。一、委托(Delegate)1. 委托的定义委托本质上是一
原创 精选 2024-05-20 09:08:51
1192阅读
1点赞
注:本文中出现的代码均在.net Framework RC3环境中运行通过 一.多线程的概念 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中...
转载 2007-12-19 11:03:00
45阅读
2评论
程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个
转载 2011-03-10 09:43:00
52阅读
2评论
expression代表你希望跟踪的对象,通常是对象引用。一般地,如果你想保护一个类的实例,你可以使用this;如果你希望保护一个静态变量(如互斥代码段在一个静态方法内部),一般使用类名就可以了。而statement_block就是互斥段的代码,这段代码在一个时刻内只可能被一个线程执行。 下面是一个使用lock关键字的典型例子,我将在注释里向大家说明lock关键字的用法和用途: ...
转载 2007-12-19 11:09:00
42阅读
Produce: 3 Consume: 3 ... ... Produce: 20 Consume: 20 事实上,这个简单的例子已经帮助我们解决了多线程应用程序中可能出现的大问题,只
转载 2011-03-09 13:27:00
49阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5