分類:[C# (Windows)]
2007/07/03(Tue) 00:48:52 編集(投稿者)
作成環境
WIN XP
VC#2005 Standard
よろしくお願いします。
C#でマルチスレッドによるプログラムを行っています。
やりたいことは以下のようなものになります。
・button1クリックで別スレッド(処理時間大)の立ち上げ
↓
・button2クリックで上で立ち上げたスレッドの中止
↓
・button1クリックで上のスレッドを最初から再起動
以下にサンプルプログラムを挙げます。
public partial class Form1 : Form
{
//何度も利用したいスレッド
Thread threadA = new Thread(new ThreadStart(ThreadMethod));
public Form1()
{
InitializeComponent();
}
//別スレッド呼び出しボタン
private void button1_Click(object sender, EventArgs e)
{
threadA.Start();
}
//別スレッド停止ボタン
private void button2_Click(object sender, EventArgs e)
{
if (threadA.IsAlive == true)
{
threadA.Abort();
threadA.Join();
}
}
//別スレッド
private static void ThreadMethod()
{
Thread.Sleep(50000);
}
}
これだと2回目の起動がうまくいきません。
実際には別スレッドはbutton1だけではなくていろいろなコントロールから立ち上げたいのですが、
簡単にすると以上のようなものになります。割り込み処理のようなものになります。
なにぶんプログラミングもC#も初心者なものでいい考えが浮かびません。
このような動作を実装するのにいい方法はあるのでしょうか。
ご教授よろしくお願いします。