我正在研究一种异步执行某项任务的方法。
我们称之为:AsyncMethod();
调用类订阅一个事件AsyncMethodCompleted,它将带有请求结果的eventarguments“发送”回触发AsyncMethod()请求的类。
现在我的问题是我的AsyncMethod有时被调用不止一次来检索数据,而AsyncMethod完成的时间可能会有所不同,我的Subcribers可能会收到他们没有请求的数据。
所以我的问题是,是否有办法区分结果,以便我的订阅者类只对结果与其请求匹配时才对结果作出反应。
答案 0 :(得分:1)
您应该为每次调用使用单独的类实例,或者使用传递给方法的回调替换该事件。
或者,更好的是,改为使用Task<T>
。