定时器定时去检验子线程是否执行完成。如果完成关闭定时器,继续执行别的方法。
private volatile static FileReadManager uniqueInstance;
private Timer _FileReadTimer = null;
private Timer _PriorityFileReadTimer = null;
public void Start()
{
try
{
_FileReadTimer = new System.Timers.Timer();
_FileReadTimer.Interval = 10000;
_FileReadTimer.Elapsed += new ElapsedEventHandler(FileRead);
_FileReadTimer.Start();
}
catch (Exception ex)
{
LogHelper.WriteError(ex, "启动文件读取定时器");
}
}
public void Stop()
{
try
{
if (_FileReadTimer != null)
{
_FileReadTimer.Stop();
_FileReadTimer.Close();
}
}
catch (Exception ex)
{
LogHelper.WriteError(ex, "停止文件读取定时器");
}
}
private void FileRead(object obj, ElapsedEventArgs e)
{
try
{
_FileReadTimer.Stop();
_FileReadTimer.Close();
}
catch (Exception ex)
{
LogHelper.WriteError(ex, "文件读取定时器方法");
}
finally
{
_FileReadTimer.Start();
}
}