1

在 ASP.NET MVC 中,当应用程序启动时,我需要在后台建立一些连接(LDAP,...)。有没有办法在 ASP.NET MVC 应用程序中执行此“线程安全”?

谢谢,

4

2 回答 2

2

您应该避免在 AS.NET 中运行后台任务。但是如果由于某种原因你需要这样做,你可以在其中启动一个新线程Application_Start并执行这些任务。由于Application_Start只执行一次,因此该线程将运行一次(当然,除非您配置了一些计时器-> 您可能不应该这样做)。

另一方面,如果您需要使用 ASP.NET MVC 控制器(在 HTTP 请求的上下文中运行)在此后台线程中完成的工作,您将需要适当的同步以确保您启动的初始化线程Application_Start已完成。根据您的具体情况,可能有不同的方法可以实现这一目标。

于 2012-06-25T06:58:24.780 回答
0

这是您需要如何执行的示例,基本上我们正在创建一个匿名函数,该函数delegateInvoke启动连接。

if(this.InvokeRequired)
{
    Invoke(new MethodInvoker( () => yourFunctionThatCreatesSomeConnections(Args)));
}
else
{
yourFunctionThatCreatesSomeConnections(Args);
}
于 2012-06-25T06:53:56.223 回答