【问题标题】:Running a background thread in a custom session state provider在自定义会话状态提供程序中运行后台线程
【发布时间】:2016-04-09 06:35:51
【问题描述】:
我想在自定义会话状态提供程序实现中运行后台进程。这将每 X 分钟执行一些自定义操作以检查提供程序的状态。
据我所知:
自定义提供者的初始化方法应该被调用一次。它是在自定义提供程序的初始化中完成的。
所以我可以在那里运行我的后台进程,直到该进程在应用程序池中被回收(并将再次运行)。
所以在阅读了线程实现之后,我可以使用后台线程似乎是最好的选择。
您如何看待这个实现?你有更好的方法吗?
问候,
【问题讨论】:
标签:
c#
asp.net
multithreading
asp.net-mvc-4
session-state
【解决方案1】:
我终于能够改进我在问题中想知道的解决方案。
在实现SessionStateStoreProviderBase的类的Initialize方法中运行我要运行的后台线程:
public sealed class CustomSessionProvider : SessionStateStoreProviderBase
{
// Initialize the provider
public override void Initialize(string name, NameValueCollection config)
{
try
{
Thread t = new Thread(() => MethodName(parameter1, parameter2));
t.Start();
}
catch (Exception e)
{
//Exception executing the thread
}
}
}