DLL函数是否自动在新线程中运行?

DLL函数是否自动在新线程中运行?,dll,Dll,我做了一些研究,了解到如果我运行一个程序,我的系统会自动在一个新线程中启动它。使用DLL时会是什么样子 DLL中的某些伪代码,extern\u func()从DLL中导出: func1() { while(true) ...do something; } extern_func() { ...do something func1(); ...do something else } 现在,如果在我的程序中调用extern\u func(),它是在新线程中运行函数,还是必须显式执行

我做了一些研究,了解到如果我运行一个程序,我的系统会自动在一个新线程中启动它。使用DLL时会是什么样子

DLL中的某些伪代码,
extern\u func()
从DLL中导出:

func1()
{
  while(true) ...do something;
}
extern_func()
{
  ...do something
  func1();
  ...do something else
}

现在,如果在我的程序中调用
extern\u func()
,它是在新线程中运行函数,还是必须显式执行此操作?

当程序启动时,会创建一个线程。这通常被称为“主”线程


如果不显式创建其他线程,或使用创建其他线程的函数,则所有代码都将在该主线程中运行,即使调用来自DLL/库的函数。

当程序启动时,将创建一个线程。这通常被称为“主”线程


如果不显式创建其他线程,或使用创建其他线程的函数,则所有代码都将在该主线程中运行,即使调用来自DLL/库的函数。

否,在另一个DLL中调用方法不会自动启动新线程

否,在另一个dll中调用方法不会自动启动新线程

没有一个操作系统是这样工作的。尤其是Windows。当涉及COM+时,事情会变得更加有趣。。。但这是一个完全不同的故事;-)没有一个操作系统是这样工作的。尤其是Windows。当涉及COM+时,事情会变得更加有趣。。。但这是一个完全不同的故事;-)