|
分類:[C#]
.NET Framework3.5でC#で開発をしているものです。XPです。
threadを確実に終了する方法について質問があります。
常時動かしたい処理をスレッドにして、終了時にスレッドをとめて終了したいと思っています。
Webなどを見て、次のようにしてみました。
ところが、ボタンを押して終了しても、タスクマネージャで見ると、まだメモリに残っています(終了できることもあります)。
確実にスレッドをとめて終了するにはどうしたらよいでしょう?
namespace threadTest {
public partial class threadTest : Form {
public threadTest() {
InitializeComponent();
Thread tread = new Thread(new ThreadStart(this.ThreadTask));
tread.IsBackground = true;
tread.Start();
}
private void ThreadTask(){
string[] lines = {"1","2","3"};
for (int i = 1; ; i++){foreach(string line in lines) {textBox.Text = textBox.Text + line;}}
}
private void endbutton_Click(object sender, EventArgs e) {
Application.Exit();Close();
}
}
}
private void endbutton_Click(object sender, EventArgs e) {
this.Dispose();
Application.Exit();Close();
}
private void endbutton_Click(object sender, EventArgs e) {
this.Dispose();
Thread.Sleep(200);
Application.Exit();Close();
}
などを試してみましたが、うまく終了できません。
ご教示願います。
|