下面是一个操作线程的类,具体的参数可以修改.可以利用属性来返回值. using System; using System.Threading; using System.IO; namespace IconMes.ReadFile ... { /**//// <summary> /// ThreadClass 的摘要说明。 /// </summary> public class ThreadClass ...{ public ThreadClass(string folder,string type,int time) ...{ // // TODO: 在此处添加构造函数逻辑 // blnIsStopped = true; blnSuspended = false; blnStarted = false; _folder = folder; _type = type; _readTime = time; } private Thread thdSubThread = null; private Mutex mUnique = new Mutex(); private bool blnIsStopped; private bool blnSuspended; private bool blnStarted; private string _folder; private string _type; private int _readTime; public bool IsStopped ...{ get ...{ return blnIsStopped; } } public bool IsSuspended ...{ get ...{ return blnSuspended; } } public string Folder ...{ get ...{ return _folder; } } public string Type ...{ get ...{ return _type; } } public int ReadTime ...{ get ...{ return _readTime; } } public void Start() ...{ if( !blnStarted ) ...{ thdSubThread = new Thread( new ThreadStart( ReadThread ) ); blnIsStopped = false; blnStarted = true; thdSubThread.Start(); } } public void Stop() ...{ if( blnStarted ) ...{ if( blnSuspended ) ...{ Resume(); } blnStarted = false; blnIsStopped = true; thdSubThread.Join(); } } public void Suspend() ...{ if( blnStarted && !blnSuspended ) ...{ blnSuspended = true; mUnique.WaitOne(); } } public void Resume() ...{ if( blnStarted && blnSuspended ) ...{ blnSuspended = false; mUnique.ReleaseMutex(); } } public void Dispose() ...{ Stop(); GC.SuppressFinalize(this); } private void ReadThread() ...{ StreamWriter myWriter=null; do ...{ mUnique.WaitOne(); mUnique.ReleaseMutex(); try ...{ myWriter=new StreamWriter(@"E:IconMes.ReadFileinDebugaa"+_type+".txt",true); myWriter.WriteLine(DateTime.Now.ToString()); myWriter.Close(); } catch...{}; Thread.Sleep(_readTime); }while( blnIsStopped == false ); } }} 调用的部分代码,此处为多线程: ThreadClass[] readThread; for ( int i = 0 ;i < ds1.Tables[ 0 ].Rows.Count;i ++ ) ... { readThread[i] = new ThreadClass(ds1.Tables[0].Rows[i]["Folder"].ToString(),ds1.Tables[0].Rows[i]["Type"].ToString(),Convert.ToInt32(ds1.Tables[0].Rows[i]["Time"].ToString())); readThread[i].Start(); }