Tôi có một chủ đề gọi một đối tượng nhận một số nội dung từ Internet. Khi đối tượng này được lấp đầy với tất cả các thông tin cần thiết, nó làm tăng một sự kiện với một đối tượng sẽ tất cả các thông tin. Sự kiện này được tiêu thụ bởi bộ điều khiển đã bắt đầu chuỗi.Chủ đề WPF và GUI cách truy cập đối tượng từ chuỗi khác nhau?
Đối tượng trả về từ sự kiện này được thêm vào bộ sưu tập được liên kết với GUI thông qua phương pháp Xem mô hình.
Vấn đề là tôi không thể sử dụng CheckAccess với các ràng buộc ... làm thế nào tôi có thể khắc phục vấn đề sử dụng Object đã được tạo ra từ một chủ đề khác của chính?
Các lỗi mà tôi nhận được khi tôi thêm các đối tượng để bộ sưu tập của các chủ đề chính là:
Đây là loại CollectionView không hỗ trợ thay đổi SourceCollection của nó từ một thread khác nhau từ sợi Dispatcher.
này các bộ điều khiển:
public class WebPingerController
{
private IAllQueriesViewModel queriesViewModel;
private PingerConfiguration configuration;
private Pinger ping;
private Thread threadPing;
public WebPingerController(PingerConfiguration configuration, IAllQueriesViewModel queriesViewModel)
{
this.queriesViewModel = queriesViewModel;
this.configuration = configuration;
this.ping = new Pinger(configuration.UrlToPing);
this.ping.EventPingDone += new delPingerDone(ping_EventPingDone);
this.threadPing = new Thread(new ThreadStart(this.ThreadedStart));
}
void ping_EventPingDone(object sender, QueryStatisticInformation info)
{
queriesViewModel.AddQuery(info);//ERROR HAPPEN HERE
}
public void Start()
{
this.threadPing.Start();
}
public void Stop()
{
try
{
this.threadPing.Abort();
}
catch (Exception e)
{
}
}
private void ThreadedStart()
{
while (this.threadPing.IsAlive)
{
this.ping.Ping();
Thread.Sleep(this.configuration.TimeBetweenPing);
}
}
}
Bạn có thể đăng định nghĩa của UIThread trong ngữ cảnh này không? Cảm ơn. Không biết phải thay thế nó bằng mã số của tôi – Para
Cùng một câu hỏi. UIThread có nghĩa là gì? – zero51
Nó phải là một lớp con của 'System.Windows.Threading.DispatcherObject'. – Jalal