擅长:python、mysql、java
<p>您的<code>record</code>函数不能按预期工作不是因为<code>Popen</code>调用,而是因为它是一个生成器函数(因为它包含一个<code>yield</code>语句)。生成器函数在调用它们时实际上并不运行它们的代码。相反,它们会立即返回一个生成器对象,并且函数中的代码只有在对生成器对象进行迭代时才会运行</p>
<p>我认为没有任何有用的方法可以直接调用生成器函数作为线程的目标。相反,您可能希望线程以使用生成器对象的其他函数为目标。或者可以将当前函数重新构造为不是生成器(不清楚<code>yield</code>语句的目的是什么)</p>