修改ctx使用成员变量而不是临时变量，解决ctx提前释放引起的bug