下面是一个操作线程的类,具体的参数可以修改.可以利用属性来返回值.
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();
}

被折叠的 条评论
为什么被折叠?



