在 ASP.NET MVC 中,当应用程序启动时,我需要在后台建立一些连接(LDAP,...)。有没有办法在 ASP.NET MVC 应用程序中执行此“线程安全”?
谢谢,
在 ASP.NET MVC 中,当应用程序启动时,我需要在后台建立一些连接(LDAP,...)。有没有办法在 ASP.NET MVC 应用程序中执行此“线程安全”?
谢谢,
您应该避免在 AS.NET 中运行后台任务。但是如果由于某种原因你需要这样做,你可以在其中启动一个新线程Application_Start
并执行这些任务。由于Application_Start
只执行一次,因此该线程将运行一次(当然,除非您配置了一些计时器-> 您可能不应该这样做)。
另一方面,如果您需要使用 ASP.NET MVC 控制器(在 HTTP 请求的上下文中运行)在此后台线程中完成的工作,您将需要适当的同步以确保您启动的初始化线程Application_Start
已完成。根据您的具体情况,可能有不同的方法可以实现这一目标。
这是您需要如何执行的示例,基本上我们正在创建一个匿名函数,该函数delegate
将Invoke
启动连接。
if(this.InvokeRequired)
{
Invoke(new MethodInvoker( () => yourFunctionThatCreatesSomeConnections(Args)));
}
else
{
yourFunctionThatCreatesSomeConnections(Args);
}