У меня есть приложение winform, которое показывает некоторую информацию во времени, каждый раз, когда оно загружает данные, я установил время задержки 7 секунд, например: System.Threading.Thread.Sleep (7000), чтобы информация могла быть просмотрена , Я хочу, чтобы у меня была кнопка, которая позволяла бы мне переходить к следующей информации без ожидания.
Я использую следующую логику: получить информацию, если она есть, ждать 7 секунд, следующие данные и так далее. Поэтому, если я нажму кнопку, я бы хотел установить это время на 0.
Есть ли способ отменить период ожидания?
вот код:
ManualResetEvent wait_handle = new ManualResetEvent(true);
{...}
private void TheLoop(object stateinfo)
{
bool hasInfo = true;
bool hasLines = GetLinesOnProduction();
while (doLoop)
{
wait_handle.WaitOne();
if (hasLines)
{
param1 = Lines[CurrentLine].line;
param2 = Lines[CurrentLine].WO;
//Here I query the DB for the CurrentLine Data
ShowLineInformation(CurrentLine);
ShowChartByHour(param1, param2, out hasInfo);
if (hasInfo)
System.Threading.Thread.Sleep(7000);
//Here I move to the next line
if (CurrentLine < Lines.Count - 1)
CurrentLine++;
else
{
CurrentLine = 0; //Start all over again
hasLines = GetLinesOnProduction();
}
}
else
{
System.Threading.Thread.Sleep(40000); //(No Lines)Wait to query for lines again
hasLines = GetLinesOnProduction();
}
}
}
private void btnPauseResume_Click(object sender, EventArgs e)
{
if (btnPauseResume.Text == "Pause")
{
btnPauseResume.Text = "Resume";
wait_handle.Reset();
}
else
{
btnPauseResume.Text = "Pause";
wait_handle.Set();
}
}