Я работаю с Asp.net MVC 3. Любая причина, почему я не могу создать отдельный экземпляр процесса потока в MVC?Я пытаюсь разрешить один экземпляр рабочего процесса по одному.однако он допускает более одного экземпляра одновременно.
Я последовал примеру на: http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx
Это код в моем контроллере:
private static Semaphore _pool;
public ActionResult StartBots(int id)
{
_pool = new Semaphore(0, 1);
Thread t = new Thread(SingletonWorker);
t.Start();
_pool.Release(1);
return RedirectToAction("index", new { id = id });
}
Я также пробовал этот пример с помощью блокировки: http://msdn.microsoft.com/en-us/library/c5kehkcz(v=VS.80).aspx
private Object thisLock = new Object();
public ActionResult StartBots(int id)
{
Thread t = new Thread(SingletonWorker);
lock (thisLock)
{
t.Start();
}
return RedirectToAction("index", new { id = id });
}
-------------------------------- рабочий ------------------------------------
private static void SingletonWorker()
{
_pool.WaitOne(); <== this only applies to the Semaphore example.
// Do something here.
Thread.Sleep(rand.Next(4) * 200 + 1000);
// Do something else here.
}