选B
先看一个简单的句子:
I have finished my homework.
我已经完成作业了.
因为是“已经”, 就是发生在过去,而且对现在有影响(就是现在不用做作业了),所以用现在完成时.现在完成时的结构就是"主语+have/has+动词的过去分词",这个结构里根本就没含有ing的形式.所以用I have finished my homework.
你说的动作的执行者就是ing, 动作的承受者就是ed, 只适用于keep sb. doing sth. / keep sb. done里面的sb 后面那个动词