首页 软件列表

深入多线程之:深入生产者、消费者队列分析
首页

深入多线程之:深入生产者、消费者队列分析

2020-02-16 标签:深入,多线程,生产者,消费者,队列,分析,上次,使用,实现,生产,这一次,要使,wait,pulse,方法,更强,大的,版本,允许

上次我们使用AutoResetEvent实现了一个生产/消费者队列。这一次我们要使用Wait和Pulse方法来实现一个更强大的版本,它允许多个消费者,每一个消费者都在自己的线程中运行。我们使用数组来跟踪线程。Thread[] _workers;通过跟踪线程可以让我们在所有的线程都结束后再结束我们的队

首页

深入多线程之:双向信号与竞赛的用法分析

2020-02-16 标签:深入,多线程,双向,信号,竞赛,用法,分析,two,signaling,races,monitor,pulse,方法,重要,特性,它是,异步,执行,意味着,调用

双向信号和竞赛(Two-Way Signaling and Races) Monitor.Pulse方法的一个重要特性是它是异步执行的,这意味着调用pulse方法并不会阻塞自己等待Monitor.Pulse返回。如果任何一个线程在pulsed 对象上等待,它是不会阻塞的,换句话说,调用Monitor

深入多线程之:解析线程的交会(Thread Rendezvous)详解
首页

深入多线程之:解析线程的交会(Thread Rendezvous)详解

2020-02-16 标签:深入,多线程,解析,线程,交会,thread,rendezvous,详解,在上,文章,使用,wait,pulse,实现,countdown,接下来,刚刚,写的

在上篇文章中我们使用了Wait和Pulse 实现了Countdown接下来我们可以使用刚刚写的Countdown 类来实现两个线程的交会。实现代码如下:class Rendezvous{static object _locker = new object();static Countdown _co

判断给定的图是不是有向无环图实例代码
首页

判断给定的图是不是有向无环图实例代码

2020-02-16 标签:判断,给定,是不是,实例,代码,实现,如下,include,iostream,list,stack,using,n,amespace,std,class,graph,int

实现代码如下:#include#include#includeusing namespace std;class Graph { int vertexNum; list *adjacents;public: Graph(int _vertexNum) {vertexNum = _vertexNum;

深入多线程之:Reader与Write Locks(读写锁)的使用详解
首页

深入多线程之:Reader与Write Locks(读写锁)的使用详解

2020-02-16 标签:深入,多线程,reader,write,locks,读写,使用,详解,线程,安全,经常的,需求,允许,并发,不允,例如,文件

线程安全的一个很经常的需求是允许并发读,但是不允许并发写,例如对于文件就是这样的。ReaderWriterLockSlim 在.net framework 3.5的时候就提供了,它是用来代替以前的”fat”版本的”ReaderWriterLock”这两个类,有两种基本的锁----一个读锁,一个写锁。

关于System.Convert的那些事儿
首页

关于System.Convert的那些事儿

2020-02-16 标签:关于,system,convert,事儿,经常,同事,代码,bool,obj,服务器,返回,来的,n,ull,实现,如下,toboolean,true,something

经常看到同事写代码:bool? obj=从服务器返回来的值,可能为null。实现代码如下:if(obj !=null 这代表上面的代码可以简化为实现代码如下:if(Convert.ToBoolean(obj)){//Do something.}顺带提一下,下面的代码会跑出异常.Convert.ToC

基于Silverlight打印的使用详解,是否为微软的Bug问题
首页

基于Silverlight打印的使用详解,是否为微软的Bug问题

2020-02-16 标签:基于,silverlight,打印,使用,详解,是否,微软,bug,问题,新建,应用程序,名称,slstudy,建好,如下,用户,控件

1:新建Silverlight4 应用程序,名称为SLStudy。建好后如下:2:在SLStudy下新建Silverlight用户控件,Print1.xaml作为要打印的控件。在Print1.xaml里面添加代码为:实现代码如下:这是第一个例子,简单的按钮3:已经建立好了要打印的内容了,这里打印的是

浅谈Silverlight 跨线程的使用详解
首页

浅谈Silverlight 跨线程的使用详解

2020-02-16 标签:浅谈,silverlight,线程,使用,详解,新建,sl,应用程序,mainpage,添加,代码,button,x,name,btnthread,click,thread

新建SL4 应用程序,在MainPage下添加代码:Thread1后台代码为:实现代码如下:private void btnThread1_Click(object sender, RoutedEventArgs e){new Thread(() =>{MessageBox.Show("Hel

首页

解析abstract与override究竟可不可以同时使用

2020-02-16 标签:解析,abstract,override,究竟,可不可以,同时,使用,属性,方法,修饰,同事,问我,我最,反应,不可以,事实上,证明,的确是,这个问题

一个属性或方法可以同时被abstract 和override 修饰吗?我的一个同事这样问我。我最初的反应是:“当然不可以”,但是事实上证明的确是可以一起修饰的。对于这个问题,我认真的思考了下,这种方式虽然少见,但是却是合法的甚至还有点意义。假设我们有一个非常大的,复杂的类型,让我们叫他”Thingy

基于Silverlight DataGrid中无代码设置开始与结束日期DatePicker的实现方法
首页

基于Silverlight DataGrid中无代码设置开始与结束日期DatePicker的实现方法

2020-02-16 标签:基于,silverlight,datagrid,代码,设置,结束,日期,datepicker,实现,方法,有时候,碰到,需要,需求,比如,商品,每件,出售,字段,如何

有时候会碰到一些需要设置开始日期和结束日期的需求,比如有很多商品,每件商品都有开始出售日期和结束出售日期的字段。如何使用DatePicker控件来满足这些需求呢,下文将做解答:1:新建SL4项目文件。新建Page页面DatePickerDemo.xaml;2:新建实体类Product,包含SellB