1,I was writing an article last night.
我昨晚一直在写文章.
过去完成进行时就是表达在某个过去动作之前有一个持续的动作.
I had been writing an article last night.
(昨晚在做某事之前,)昨晚我一直在写文章.
是允许出现的.条件是你昨晚在写完文章后,又做了别的事情.
不是说一定有时态比较才可以用.反过来理解比较恰当:只要用上了过去完成进行时,就包含了时态的比较.
2,正确表达是The speaker has been talking for 2 hours.
这样看来这个演讲者在我陈述这句话的时候还没结束演讲.
3,我觉得更多地是看动词的限制,有些不持续性的动作只能用一般将来时,有些持续性的动作则允许用将来进行时.例子中的visit最好还是用一般将来时.
小朋友好问是好事,祝你学习愉快