我正在编写一个家庭 WPF 应用程序,它以配置的时间间隔从服务器获取文件。
这是一个基本窗口,带有几个标签。我有以下
- 开始时间(反映“开始”事件被击中的日期时间
- 持续时间(反映应用程序运行的时间)
- 速度(文件的下载速度)
我想每秒更新主窗口上的持续时间,所以我有以下代码来执行此操作(在单独的类“RunDownloader.cs”中)。
private void StartTickTimer()
{
const double interval = 1000;
if (_tickTimer == null)
{
_tickTimer = new Timer
{
Interval = interval
};
_tickTimer.Elapsed += _ticktimer_Elapsed;
}
_tickTimer.Start();
}
在 _ticktimer_Elapsed 我调用主窗口中的一个方法 _mainWindow.UpdateTicker();
这将执行以下操作。
public void UpdateTicker()
{
var timeStarted = lblTimeStarted.Content.ToString();
DateTime startTime = DateTime.Parse(timeStarted);
TimeSpan span = DateTime.Now.Subtract(startTime);
//ToDo: Output time taken here!
//lblTimeElapsed.Content =
}
我有两个问题。
调用 lblTimeStarted.Content.ToString(); 时出现以下异常;在 UpdateTicker()
"The calling thread cannot access this object because a different thread owns it."
我不太清楚,如何正确显示来自 TimeSpan 的 lblTimeElapsed.Content 的持续时间
提前感谢您的任何答案。:D