Welcome 微信登录

首页 / 软件开发 / C#

C#多线程学习(三)生产者和消费者

C#多线程学习(三)生产者和消费者

C#多线程学习(三)生产者和消费者2009-11-03 cnblogs 钢钢前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定...
C#多线程学习(四)多线程的自动管理(线程池)

C#多线程学习(四)多线程的自动管理(线程池)

C#多线程学习(四)多线程的自动管理(线程池)2009-11-03 cnblogs 钢钢在多线程的程序中,经常会出现两种情况:一种情况:应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows ...
C#多线程学习(五)多线程的自动管理(定时器)

C#多线程学习(五)多线程的自动管理(定时器)

C#多线程学习(五)多线程的自动管理(定时器)2009-11-03 cnblogs 钢钢Timer类:设置一个定时器,定时执行用户指定的函数。定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象:Timer timer = new Timer(timerDelegate, s,1000, 1000);// 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信息的...
C#多线程学习(六)互斥对象

C#多线程学习(六)互斥对象

C#多线程学习(六)互斥对象2009-11-03 cnblogs 钢钢如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对象被释放,...
C#解决在控制台中输入Ctrl+Z的问题

C#解决在控制台中输入Ctrl+Z的问题

C#解决在控制台中输入Ctrl+Z的问题2009-11-03 cnblogs Arishuang本人在前几天做了一道题如下(在116行中用(int)cki.KeyChar==26解决了C#中在控制台捕捉Ctrl+Z):解决的方法也是请教了老师,经老师调试过才得出的解决方法.(因在ConsoleKey的枚举中无Ctrl此键)总结的心得是,单步调试方法确实是有效解决问题的路径.1 using System;2 using System.Collections....
C# KeyPress事件在用户完成按键后发生

C# KeyPress事件在用户完成按键后发生

C# KeyPress事件在用户完成按键后发生2009-11-03本示例实现的是,当程序运行的时候,只允许在文本框中输入数字,如果文本框输入的内容不是数字,文本框中的内容会显示在窗体的标题栏上,文本框中不会显示内容。程序主要代码如下。private void textBox2_KeyPress(object sender, KeyPressEventArgs e){ if (e.KeyChar != 8 && !char.IsDigit(e...
C# WinForm中在窗口标题栏上加按钮

C# WinForm中在窗口标题栏上加按钮

C# WinForm中在窗口标题栏上加按钮2009-11-03袁晓辉在窗口标题栏上加按钮本来不是什么新鲜事了,我在VC++下早也实现过了(相信很多人也都实现过了)。今天一个朋友问我C# WinForm下可否实现,我就顺便拿C#写了一个。原理是一样的,都是重写窗口过程(WndProc),处理一些非客户区消息(WM_NCxxxx),可以说本来没有什么新意,可是从写这个程序的过程中,我也学到了两个技巧:1)、C#中重写窗口过程不用再调用SetWindowLong...
Head First C#中文版(page2)

Head First C#中文版(page2)

Head First C#中文版(page2)2009-12-14 yeeyan.com 翻译:烟锁重楼为什么要学C#C#和VisualStudioIDE帮你把写代码这回事儿变得又简单又快捷。你用C#工作的时候,VSIDE就是你最好的朋友和长久的伴侣.下面是VSIDE为你自动生成的...每次你想要开始写一个程序,或者只是在窗体上放一个按钮,你的程序都需要一大堆的重复代码.你能从VisualStudio和C#这儿获得什么呢...有了C#这种专为Windows...
Head First C#中文版(page3)

Head First C#中文版(page3)

Head First C#中文版(page3)2009-12-14 yeeyan.com 翻译:烟锁重楼C#和VisualStudioIDE让很多事情变得简单使用C#和VS,你就得到了所有那些优秀的特性,无需做任何额外的工作。这些特性使得你可以:快速构建应用。用C#创建程序是小菜一碟。C#好学而且强大,VS又可以自动为你完成很多工作。你可以把俗气的代码交给VS去完成,自己把精力集中在要完成的事上。设计美观的UI。VS的窗体设计器是最易用的设计工具。它为你完...
Head First C#中文版(page4)

Head First C#中文版(page4)

Head First C#中文版(page4)2009-12-14 yeeyan.com 翻译:烟锁重楼帮助CEO实现无纸化ObjectvillePaper公司刚刚雇佣了一个新的CEO。他喜欢徒步旅行、喝咖啡、热爱自然...平且,他决定要尽力拯救森林。他想要从他的会晤开始做一个无纸化的主管。他周末要去白杨林去滑雪,他希望回来时可以看到新的通讯簿程序。要不然...那个老CEO也不用正在找新工作了。...
Head First C#中文版(page5)

Head First C#中文版(page5)

Head First C#中文版(page5)2009-12-14 yeeyan.com 翻译:烟锁重楼在开始构建程序之前了解用户的需求在开始写这个通讯簿的程序--或者是任何的程序--之前我们要花点时间去想想谁会去用这个程序,他们需要这个程序做什么?1.CEO需要在工作的时候用这个通讯簿程序,在他的笔记本电脑上也需要用。他需要一个安装包来确保把所有的文件都正确的安装到这两台电脑上。2.ObjectvillePaper公司的销售团队也想要用CEO的通讯簿。他...
<< 121 122 123 124 125 126 127 128 129 130 >>