У меня есть окно с telerik gridview в нем, и я обновляю это gridview каждую 1 минуту.У меня есть метод обновления, и каждую 1 минуту я его вызываю.
Я не могу использовать BackgroundWorker, потому что мой CollectionViewSource находится в потоке пользовательского интерфейса, и фоновый работник не может его использовать.мой вопрос, как я могу вызвать этот метод обновления из другого потока?
где-то я вижу этот пример кода:
Application.Current.Dispatcher.BeginInvoke(new Action(() => this.Refresh()));
это истинный способ, которым я использую приведенный выше код в Refresh_Executed?Пожалуйста, помогите мне.
это мой метод обновления:
public ObservableCollection<RequestView> AllRequestsData { get; set; }
private void Refresh()
{
using (ArchiveEntities db = new ArchiveEntities())
{
var data = db.RequestSyncs.Where(x => x.UserId == null);
if (data.Any())
{
string IdList = String.Join(",", data.Where(x => x.IsNew).Select(x => x.RequestId));
if (!String.IsNullOrWhiteSpace(IdList))
{
foreach (var item in db.RequestViews.Where("it.id in {" + IdList + "}"))
{
this.AllRequestsData.Add(item);
}
}
foreach (var item in data.Where(x => x.IsDeleted))
{
RequestView rv = this.AllRequestsData.Where(x => x.Id == item.RequestId).SingleOrDefault();
if (rv != null)
{
this.AllRequestsData.Remove(rv);
}
}
foreach (var item in data)
{
db.RequestSyncs.DeleteObject(item);
}
db.SaveChanges();
}
}
}
спасибо