我有这个背景工作者:
MyBackgroundWorker.DoWork += ((sender, arg) =>
{
while (true)
{
client.GetkFailuresCompleted += ((s, e) =>
{
int[] arr = JsonHelper.Deserialize<int[]>(e.Result);
int error = (int)((arr[0] / (double)arr[1]) * 100);
Debug.WriteLine("Error %: " + error);
this.Dispatcher.BeginInvoke(() =>
{
ErrorOverviewPointCollection.Clear();
ErrorOverviewPointCollection.Add(new Point(1, 100 - error));
ErrorOverviewPointCollection.Add(new Point(1, error));
});
});
client.GetFailuresAsync();
Thread.Sleep(5000);
}
});
正如你所见,我永远在运行它。我没有实现任何停止/失败功能来停止BackgroundWorker
,但我需要吗?如果用户关闭浏览器,应用程序应该停止吗?
访问一个 Web 服务,该DoWork
服务在完成时更新一个ObservableCollection
数据绑定到 silverlight 应用程序的 Web 服务。