Tôi đang cố gắng gọi System.Windows.Threading.Dispatcher.BeginInvoke
. Chữ ký của phương thức là:Dispatcher.BeginInvoke: Không thể chuyển đổi lambda thành System.Delegate
BeginInvoke(Delegate method, params object[] args)
Tôi đang cố chuyển nó thành Lambda thay vì phải tạo Đại biểu.
_dispatcher.BeginInvoke((sender) => { DoSomething(); }, new object[] { this });
Nó cho tôi lỗi trình biên dịch nói rằng tôi không thể chuyển đổi lambda thành System.Delegate. Chữ ký của đại biểu lấy một đối tượng làm tham số và trả về void. Lambda của tôi phù hợp với điều này, nhưng nó không hoạt động. Tôi đang thiếu gì?
Đó là một 'mảng params'. – SLaks
Nhưng không (x) => {DoSomething(); } khớp với chữ ký của người được ủy quyền? Tôi nghĩ đó là tất cả những gì tôi cần phải ghi rõ. – Micah
@Micah: System.Delegate không có chữ ký - tất cả chỉ là "bất kỳ đại biểu nào". Bạn cần phải cung cấp cho nó một loại đại biểu với một sig. phù hợp với cách sử dụng của bạn. –