0

何かをしているページがあります。1.2時間以上かかる場合があります...しばらくするとリクエストがタイムアウトになりますが、この特定のページでリクエストがタイムアウトにならないようにしたいと思います-これまで(または少なくとも24時間) )。

どうすればいいのですか?

ありがとう。

4

1 に答える 1

0

シグナルを含むスレッドを作成して、それがまだ実行されているかどうかを知ることができます。多くのプールとスレッドで同じになることができるのはミューテックス信号だけなので、ミューテックス信号を使用することをお勧めします。

スレッドコードは次のようになります。

public class RunThreadProcess
{
    // Some parametres
    public int cProductID;

    // my thread
    private Thread t = null;

    // start it
    public Thread Start()
    {
        t = new Thread(new ThreadStart(this.work));
        t.IsBackground = true;
        t.SetApartmentState(ApartmentState.MTA);
        t.Start();

        return t;
    }

    // actually work
    private void work()
    {
        // while the mutex is locked, the thread is still working
        Mutex mut = new Mutex("WorkA");
        try
        {
            mut.WaitOne();

            // do thread work
            all parametres are available here

        }
        finally
        {
          mut.ReleaseMutex();
        }
    }
}

そして、あなたはそれを次のように呼びます

 Mutex mut = new Mutex("WorkA");

 try
 {
 if(mut.WaitOne(1000))
 {
   // release it here to start it from the thread as signal
   mut.ReleaseMutex();
   // you start the thread
   var OneAction = new RunThreadProcess();

    OneAction.cProductID = 100;
    OneAction.Start();
  }
  else
  {
     // still running
  }
 }
 finally
 {
   mut.ReleaseMutex();
 }
于 2012-06-02T12:28:32.853 に答える