スタートとストップの2つのボタンがあります。開始ボタンをクリックすると、テーブルをヒットしてレコードをループし、レコードがループしている時間の差 (所要時間) を表示したいと思います。
ただし、開始ボタンをクリックすると、レコードの数が多いため、「停止」ボタンをクリックできません。開始ボタンをクリックして、そのプロセスを個別に実行しようとしています。たとえば、5000 レコードが処理された場合、停止ボタンをクリックして、5000 レコードにかかった時間を表示したいのですが、もう一度開始をクリックすると、中断したところからレコードを続行します。
2 つのイベントを個別に処理するにはどうすればよいですか? どんな考えでも本当に役に立ちます。よろしくお願いします。
private void startQueries()
{
thread=
new Thread(this.LoadResults);
thread.IsBackground =true;
thread.Start();
}
private void LoadResults()
{
//Method that runs a select query - fetches 1000s of records
Timespan startTime = <<Record the start time>>;
//Loop thro' all the 1000s of records;
Timespan stopTime=<<Record the stop time>>;
//Display the difference between start and stop time.
}
private void btnStart_Click(object sender, EventArgs e)
{
if(thread!=null)
{
if (thread.ThreadState == ThreadState.Running)
{
//do nothing
}
else if (thread.ThreadState == ThreadState.Suspended)
{
startQueries();
}
}
private void btnStop_Click(object sender, EventArgs e)
{
//Stop the running thread
// Need to display the time between the thread start and stop.
}
}