zytt2314

2013年12月22日

【转】C#多线程

摘要: C#中的多线程编程 C#是.Net平台的通用开发工具,它能够建造所有的.Net应用。在.Net中所有线程都运行在应用程序域(AppDomain)中,这也许让你想到Win32进程,实际上它们还是有很大的不同。应用程序域提供了一种安全而通用的处理单元,公共语言运行库可使用它来隔离应用程序。注意在.Net中应用程序的隔离是应用程序域而不是进程,在单个进程中可以存在几个应用程序域,而且线程可以跨越应用程序域的范围,某个线程中的方法可以调用另一个线程的方法,这样的话就不会造成进程间调用或进程间切换等方面的额外开销。可以说应用程序域是物理进程(也即win32中的Process)内的逻辑进程。在VisulC 阅读全文

posted @ 2013-12-22 20:20 zytt2314 阅读(166) 评论(0) 推荐(0)
【转】Thread.sleep(0)的意义

摘要: Thread.sleep(0)的意义 2012-03-23 17:47 2188人阅读 评论(2) 收藏 举报windows算法unixthread我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2008-4-7 12:00:01.000 的时候,这个线程会 不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比, 阅读全文

posted @ 2013-12-22 19:54 zytt2314 阅读(126) 评论(0) 推荐(0)
【转】C#多线程示例

摘要: using System;using System.Threading;namespace ConsoleThread{ class ThreadApp { static int interval; static void DisplayNumbers() { // 获取当前运行线程的Thread对象实例 Thread thisThread = Thread.CurrentThread; Console.WriteLine("线程: "+ thisThread.Name + " 已开始运行."); // 循环计数直到结束,在指定的间隔输出当前计数值 fo 阅读全文

posted @ 2013-12-22 10:00 zytt2314 阅读(159) 评论(0) 推荐(0)
【转】C#线程同步示例

摘要: using System;using System.Threading;// 银行帐户类class Account{ int balance; // 余额 Random r = new Random(); public Account(int initial) { balance = initial; } // 取钱 int Withdraw(int amount) { if (balance = amount) { Console.WriteLine("原有余额: " + balance); Console.WriteLine("支取金额: -" + 阅读全文

posted @ 2013-12-22 09:47 zytt2314 阅读(152) 评论(0) 推荐(0)
【转】Thread.isBackground

摘要: C#中,Thread类有一个IsBackground 的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程。个人感觉这样的解释等于没有解释..Net中的线程,可以分为后台线程和前台线程。后台线程与前台线程并没有本质的区别,它们之间唯一的区别就是:后台线程不会防止应用程序的进程被终止掉。呵呵,这句话读出来好像并不那么好懂.其实,说白了就是当前台线程都结束了的时候,整个程序也就结束了,即使还有后台线程正在运行,此时,所有剩余的后台线程都会被停止且不会完成.但是,只要还有一个前台线程没有结束,那么它将阻止程序结束.这就是为什么有些设计不够完美的WinForm程序,在某种特 阅读全文

posted @ 2013-12-22 08:44 zytt2314 阅读(243) 评论(0) 推荐(0)

2013年12月21日

【转】C#调用DLL

摘要: C#中如何调用动态链接库DLL(转)每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍。首先,您需要了解什么是托管,什么是非托管。一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX的组件,托管代码是基于.net平台开发的。如果您想深入了解托管与非托管的关系与区别,及它们的运行机制,请您自行查找资料,本文件在此不作讨论。(一) 调用DLL中的非托管函数一般方法首先,应该在C#语言源程序中声明外部方法,其基本形式是:[DLLImport(“DLL文件”)]修饰符 extern 返回变量类型 方法名称 (参数列表)其中:DLL文件:包含定义外部 阅读全文

posted @ 2013-12-21 13:45 zytt2314 阅读(238) 评论(0) 推荐(0)

2013年12月20日

【转】C#多线程学习

摘要: C#多线程学习(一) 多线程的相关概念什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。多线程的好处:可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就 阅读全文

posted @ 2013-12-20 16:34 zytt2314 阅读(601) 评论(0) 推荐(0)