private Task TimKiemTask(ThongTinTimKiem param, CancellationToken token) { return(Task.Run(() => { int dem = 0; _danhSach = new BindingList <ThongTinTaiKhoan>(); XuLyDaLuong.ChangeText(lblTrangThaiTimKiem, "Đang nhận dữ liệu...", Color.Red); foreach (var kq in _guiTinNhan.TimKiem(param)) { if (token.IsCancellationRequested) { break; } if (!_danhSach.Select(p => p.Id).Contains(kq.Id)) { _danhSach.Add(kq); Debug.WriteLine($"{kq.Id} - {kq.TaiKhoan}"); XuLyDaLuong.ChangeText(lblSoLuongKetQua, string.Format("Số lượng kết quả: {0}", ++dem), Color.Black); } } XuLyDaLuong.ChangeText(lblTrangThaiTimKiem, "Hoàn tất tìm kiếm", Color.Green); thongTinTaiKhoan_TimKiemBindingSource.DataSource = _danhSach; btnTimKiem.Text = "Tìm kiếm (F3)"; lblSoLuongKetQua.Text = "Số lượng kết quả: " + thongTinTaiKhoan_TimKiemBindingSource.Count.ToString(); btnTimKiem.BackColor = Color.FromArgb(255, 255, 128); })); }
private void backgroundWorkerTimKiem_DoWork(object sender, DoWorkEventArgs e) { int dem = 0; _danhSach = new BindingList <ThongTinTaiKhoan>(); XuLyDaLuong.ChangeText(lblTrangThaiTimKiem, "Đang nhận dữ liệu...", Color.Red); foreach (var kq in _guiTinNhan.TimKiem(e.Argument as ThongTinTimKiem)) { if (backgroundWorkerTimKiem.CancellationPending) { break; } _danhSach.Add(kq); XuLyDaLuong.ChangeText(lblSoLuongKetQua, string.Format("Số lượng kết quả: {0}", ++dem), Color.Black); } e.Result = _danhSach; XuLyDaLuong.ChangeText(lblTrangThaiTimKiem, "Hoàn tất tìm kiếm", Color.Green); }