0
我有followig代碼:如何防止我的System.Timers.Timer在停止後引發Elapsed事件?
using (FileStream sourceStream = sourceFile.Open())
{
using (FileStream targetStream = File.Create(targetFilePath))
{
using (Timer timer = new Timer(250))
{
timer.Elapsed += (sender, e) =>
{
if (this.FileCopyProgressChanged != null)
{
//Here the ObjectDisposedException appears
this.FileCopyProgressChanged(this,
new CopyProgressEventArgs(
sourceStream.Length,
targetStream.Length));
}
};
timer.Start();
sourceStream.CopyTo(targetStream);
timer.Stop();
}
}
}
我定時器每250毫秒經過,並提出有關流複製進度信息的事件。 問題是,有時在計時器事件中,ObjectDisposedException被拋出,因爲流不再被打開。
如何防止在我的流被丟棄後,我的計時器會提高流逝的事件?