private void UpdateTracker()
{
if (m_tracker != null && !m_finished)
{
// Do a BeginInvoke here because the Invoke operation
// can very likely block. Avoid that by using BeginInvoke
//
// Since we'll use the current values anyways, don't post multiple BeginInvokes onto
// the tracker or we could overload it. Instead post one at a time.
try
{
SafeInvoke.BeginInvoke(m_tracker, new Action(UpdateTrackerDirect));
}
catch (Exception ex)
{
Logger.Error(FutureLogCategory.BeginInvoke, ex.Message, ex);
}
}
}