Âm thanh như một công thức hoàn hảo cho các đại biểu - đặc biệt, các cuộc gọi lại với đại biểu chính xác cách xử lý này trong mẫu không đồng bộ trong .NET.
Người gọi thường sẽ chuyển cho bạn một số trạng thái và đại biểu, và bạn lưu trữ cả hai trạng thái này trong bất kỳ bối cảnh nào, sau đó gọi cho đại biểu chuyển trạng thái đó và bất kỳ kết quả nào bạn có thể có.
Bạn có thể đặt trạng thái chỉ là object
hoặc có khả năng sử dụng đại biểu chung và đưa ra loại trạng thái thích hợp, ví dụ:
public delegate void Callback<T>(T state, OperationResult result)
Sau đó:
public void DoSomeOperation(int otherParameterForWhateverReason,
Callback<T> callback, T state)
Như bạn đang sử dụng .NET 3.5 bạn có thể muốn sử dụng Func<...>
và Action<...>
loại đại biểu hiện có, nhưng bạn có thể thấy nó làm cho nó rõ ràng hơn để khai báo của riêng bạn. (Tên có thể làm cho nó rõ ràng hơn những gì bạn đang sử dụng nó.)
Nguồn
2009-03-20 20:05:58
Tôi nghi ngờ câu trả lời của bạn chứa các biến số, sự kiện hoặc cả hai. Tuy nhiên, sau khi đọc câu hỏi của bạn một vài lần, tôi không thể quấn đầu của tôi xung quanh những gì bạn đang yêu cầu. – Brian
Đây là mẫu http://blog.jerrynixon.com/2011/11/there-are-lots-of-things-that-take-long.html –