65,187
社区成员




template<class Method, class Params>
class RunnableMethod : public CancelableTask
{
public:
RunnableMethod(const base::WeakPtr<T>& obj,
Method meth, const Params& params)
: obj_(obj), meth_(meth), params_(params)
{
COMPILE_ASSERT((MethodUsesScopedRefptrCorrectly<Method, Params>::value),
badscopedrunnablemethodparams);
}
virtual void Run()
{
if(obj_)
{
DispatchToMethod(obj_.get(), meth_, params_);
}
}
virtual void Cancel()
{
obj_.reset();
}
private:
base::WeakPtr<T> obj_;
Method meth_;
Params params_;
DISALLOW_COPY_AND_ASSIGN(RunnableMethod);
};