摘要:System.IO.Stream iStream = null; // Buffer to read 10K bytes in chunk: byte[] buffer = new Byte[10240]; // Length of the file: int length; ...
阅读全文
随笔分类 - 线程
摘要:摘要 如果应用程序在控制用户界面的线程上执行非 UI 处理,则会使应用程序的运行显得缓慢而迟钝,让用户难以忍受。但是长期以来,编写适用于 Windows 的多线程应用程序只限于 C++ 开发人员。现在有了 .NET Framework,您就可以充分利用 C# 中的多线程来控制程序中的指令流,并使 UI 线程独立出来以便用户界面能够迅速响应。本文将向您介绍如何实现这一目标。此外,本文还将讨论多线程的...
阅读全文
posted @ 2008-01-22 18:31
投石问路
摘要:每一个从Control类中派生出来的WinForm类(包括Control类)都是依靠底层Windows消息和一个消息泵循环(message pump loop)来执行的。消息循环都必须有一个相对应的线程,因为发送到一个window的消息实际上只会被发送到创建该window的线程中去。其结果是,即使提供了同步(synchronization),你也无法从多线程中调用这些处理消息的方法。大多数plum...
阅读全文
posted @ 2008-01-22 15:35
投石问路
摘要:让我们来看看同步异步的区别: 同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果 异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作 .NET框架基类库中有好几种类都可以提供同步和异步的方法调用。 因为同步方法调用会导致程序流程中途等待,所以采用同步方法的情况下往往会导致程序执行的延迟 相比来说,在某些条件下选择异步方法调用就可能更好一些 例...
阅读全文
posted @ 2008-01-22 15:28
投石问路
摘要:一、引言 在编写Windows form时,如果直接在UI线程要运行一个费时方法的话(如从数据库查询大量数据时),会引起程序“假死”,从而导致用户不满。这个时候就需要通过多线程技术来解决,提高界面交互性能,方便用户使用。 一般通过三种方式解决: 1.通过System.Threading.Thread类,创建新的线程,Thread.Start运行费时方法。 2.通过Sy...
阅读全文
posted @ 2008-01-22 14:13
投石问路
摘要:问题描述:首先有一个treeview控件,它的treenode节点分为两类,feed和category,一个feed节点对应着一个xml文件,一些相同种类的feed放在一个category下(相当于feed型节点的父节点),即一个category节点对应几个xml文件(当然了,category是可以嵌套的)。当用户点击一个treenode时,将由一个web控件来显示treenode对应的xml文件...
阅读全文
posted @ 2008-01-22 13:57
投石问路
摘要:将Delegate理解为接口,只有一个方法的接口,这样最容易理解。这个方法只有声明,没有实现,实现在别的类。(实际上应该把它看作函数指针,不过接口更容易理解些。) 在你的类中有一个Delegate就相当于有一个接口。通过这个接口你可以调用一个方法,而这个方法在别的类定义,由别的类来干。 为了说的形象一点,举个例子: 学生考试完后成绩出来了,考的好了老师要表扬,考的不好了老师要批评。 使用...
阅读全文
摘要:BeginInvoke 方法真的是新开一个线程进行异步调用吗? 参考以下代码: 复制 保存 public delegate void treeinvoke(); private void UpdateTreeView() { MessageBox.Show(System.Threading.Thread.CurrentThread.Name); } private void butto...
阅读全文
摘要:最近一直在看wse3.0,从一个例子中偶然的收获。虽然通过后台操作,从而减少用户交互时的“僵硬”体验一直是每个程序员的追求,在今天这样ajax的时代里面更加显的重要。一切为了用户,一切为了更丰富愉快的体验。本文并不是ajax相关的东东。伟大的BackgroundWorker! BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可...
阅读全文
摘要:如果你想为一个线程传入变量你怎么办? ThreadStart可不支持带参数的方法.所以你无法使用Thread来启动一个带参数的方法.. 复制 保存 ThreadStart myThreadDelegate = new ThreadStart(ThreadMethod); //public delegate void ThreadStart(); u can't pass a Par...
阅读全文
摘要:在很多场合下, 你需要在主(UI)线程中运行一些比较耗时间的任务,比如以下的任务 Image downloads Web service invocations File downloads and uploads (including for peer-to-peer applications) Complex local computations ...
阅读全文

浙公网安备 33010602011771号