/// <summary> /// 以KeepLast策略执行重入任务,并获取此次重入任务的返回值。 /// 此重入策略会确保执行当前队列中的最后一个任务,并对所有当前队列任务赋值该任务结果。 /// </summary> /// <param name="arg">此次重入任务使用的参数。</param> /// <returns>重入任务本次执行的返回值。</returns> public override Task <TReturn> InvokeAsync(TParameter arg) { var wrapper = new TaskWrapper(() => RunCore(arg)); _queue.Enqueue(wrapper); Run(); return(wrapper.AsTask()); }