C#定時檢查子執行緒是否執行完成(定時器檢查)
阿新 • • 發佈:2019-02-05
定時器定時去檢驗子執行緒是否執行完成。如果完成關閉定時器,繼續執行別的方法。
private volatile static FileReadManager uniqueInstance;
private Timer _FileReadTimer = null;
private Timer _PriorityFileReadTimer = null;
//定時器開始呼叫的方法
public void Start()
{
try
{
_FileReadTimer = new System.Timers.Timer();
//多長時間去檢查一次(1000毫秒=1秒)
_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();
//需要檢查多個單執行緒是否執行完成的方法
//子執行緒1
//子執行緒2
//子執行緒3
}
catch (Exception ex)
{
LogHelper.WriteError(ex, "檔案讀取定時器方法");
}
finally
{
_FileReadTimer.Start();
}
}