python中C#任务的等价物是什么

python中C#任务的等价物是什么,c#,python,task,C#,Python,Task,我需要将我的c#代码翻译成python。我有一个c语言的任务,需要将它翻译成python。下面是一段代码: List<Task> t = new List<Task>(); for(int i = 0; i < _tasks.Count; i++) { var theTask = _tasks[i]; t.Add(Task.Factory.StartNew(() => theTask.SAPTask.Execute(theTask.inde

我需要将我的c#代码翻译成python。我有一个c语言的任务,需要将它翻译成python。下面是一段代码:

List<Task> t = new List<Task>();
for(int i = 0; i < _tasks.Count; i++)
{
     var theTask = _tasks[i];
     t.Add(Task.Factory.StartNew(() => theTask.SAPTask.Execute(theTask.index, theTask.WindowCount)));
}
t.ForEach(x => x.Wait());
List t=newlist();
对于(int i=0;i<\u tasks.Count;i++)
{
var theTask=_tasks[i];
t、 添加(Task.Factory.StartNew(()=>theTask.SAPTask.Execute(theTask.index,theTask.WindowCount));
}
t、 ForEach(x=>x.Wait());

这段代码对于运行我的程序至关重要。我需要python在单独的线程中运行列表中的所有任务,并阻塞主线程,直到所有任务完成。python有这个功能吗?

任务只是一个操作,作为自己的线程运行。只要做一个线程,让它做一些特定的事情,你就有了你的任务

我需要Python运行列表中的所有任务,然后阻塞主线程,直到所有任务都完成

任务
的主要用例是避免阻塞主线程,这样用户可以在将工作推送到不同线程时与应用程序交互

您只是在尝试实现单个工作之间的并行性吗?

如果您使用的是Python3.2,那么在某种程度上它看起来确实像TPL。

这是不正确的。NET
Task
s可以调度在不同的线程上,但情况并非总是如此,在大多数情况下,它们运行在线程池上,而不是每个线程都有自己的线程。为每个任务派生一个线程通常太浪费了。即使该线程来自线程池,在任务的持续时间内它也是自己的线程。这就是不使用线程池执行长时间运行任务的原因。也许我误读了您的消息,对此我深表歉意。这确实是正确的。任务可能有助于避免阻塞主线程,但在这个特定示例中,即使在原始程序中,主线程也会在等待所有任务完成时被阻塞。我猜这对手头的程序来说不是问题。@retuna:没错。尽管主线程被阻塞,但在他的示例中,各个任务同时运行,所以我想这就是他想要的。