如何讓我長時間執行的過程在中間可以用命令讓它停止執行它。
其實隻要讓我的窗口在程序運行時是可操作的就可以了。 
 除了委托的辦法,沒有其它的辦法嗎?
------解决方案--------------------事件 
 循环中加判断~
------解决方案--------------------在你的循环中加上 Application.DoEvents(); 这句
------解决方案--------------------这种情况就应该用线程了,一个线程处理你的函数,你就可以动UI了。  
 ThreadStart s= new ThreadStart(select2); 
 t= new Thread(s); 
 t.IsBackground = true; 
 t.Start();   
 至于暂停,可以类似: 
 		private void BtnSuspend_Click(object sender, System.EventArgs e) 
 		{ 
 			if ((t.ThreadState & (ThreadState.Stopped | ThreadState.Unstarted)) == 0) 
 			{ 
 				BtnSuspend.Text =  "暂停中…… "; 
 				BtnSuspend.Enabled = false; 
 				button1.Text =  " 继 续  "; 
 				t.Suspend();  
 			}     
 		} 
------解决方案--------------------同意楼上看法。应该用单独的线程处理UI,单独线程处理任务,主线程负责调度。UI收到信息,则发动事件,主线程捕捉事件,启动其他线程处理。
------解决方案--------------------是的,用Thread线程操作,或者用异步方法调用BeginXXX,EndXXX
------解决方案--------------------把程序操作弄为线程操作 
 LZ可以看下以下的参考,我写线程时候就是用这方法   
 http://msdn2.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker(VS.80).aspx
------解决方案--------------------使用多线程吧   
 .Net 2.0 的C# , 有个backgroundWorker对象,可以比较方便的实现工作线程,没接触过多线程的可以从它入手慢慢学习。