在Windows中传递给线程的参数数量

时间:2016-11-21 12:16:49

标签: multithreading arguments

在C ++ / C#/ Java中,我们可以使用接受一些参数的函数启动线程。在WinAPI中,我们使用只接受void *的函数启动线程。 有多少参数真正传递给真正的Windows线程?也许许多论点变成了无效的*,指向一些结构?

1 个答案:

答案 0 :(得分:0)

大多数线程API的核心是一个执行函数指针和一个void *参数,它允许您向执行函数提供一些数据。 void *通常指向某个对象实例,然后线程函数将其强制转换为要使用的已知对象类型。然而,这对于程序员错误来说已经成熟。

您提到的更高级别的API(在C ++中使用std :: thread,在Java中使用Thread等)正在这样做,为您提供方便的,类型安全的API,以确保您不会搞砸它