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)