摘要: 获取作为BeginInvoke方法调用的最后一个参数而提供的对象//ar.AsyncState:作为 BeginInvoke 方法调用的最后一个参数而提供的对象 //也就是说 ar.AsyncState 与 BeginInvoke方法的最后一个参数类型和值都是一样的 阅读全文
posted @ 2013-05-13 17:05 xust 阅读(876) 评论(0) 推荐(0)
摘要: 很多时候写windows程序都需要结合多线程,在.net中用如下得代码来创建并启动一个新的线程。 public void ThreadProc(); Thread thread = new Thread(new ThreadStart(ThreadProc)); thread.IsBackground = true; thread.Start(); 但是很多时候,在新的线程中,我们需要与UI进行交互,在.net中不允许我们直接这样做。可以参考MSDN中的描述: “Windows 窗体”使用单线程单元 (STA) 模型,因为“Windows 窗体”基于本机 ... 阅读全文
posted @ 2013-05-13 17:03 xust 阅读(1180) 评论(0) 推荐(0)
摘要: .Net的公用语言运行时(Common Language Runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程。这两者的区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。 .net环境使用Thread建立的线程默认情况下是前台线程,即线程属性IsBackground=false,在进程中,只要有一个前台线程未退出,进程就不会终止。主线程就是一个前台线程。而后台线程不管线程是否结束,只要所有的前台线程都退出(包括正常退出和异常退出)后,进程就会自动终止。一般后台线程. 阅读全文
posted @ 2013-05-13 13:27 xust 阅读(165) 评论(0) 推荐(0)