中止しようとしているスレッドがあります。私がやったことは次のとおりです。
randomImages = new Thread(new ThreadStart(this.chooseRandomImage));
randomImages.Start();
これはスレッドによって呼び出されるメソッドです
bool threadAlive = true;
public void chooseRandomImage()
{
while(threadAlive)
{
try
{
//do stuff
}
catch (Exception exe)
{
MessageBox.Show(exe.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
ここで、スレッドの停止ボタンをクリックすると、threadAliveをfalseに設定するだけです。問題は、ある種の勢いを集めたかのように、スレッドがすぐに停止しないことです。スレッドを即座に停止し、場合によっては再開するにはどうすればよいですか?
private void butStopThread_Click(object sender, EventArgs e)
{
threadAlive = false;
if(threadAlive == false)
{
//do stuff
}
}