(C# 新手)请看这两段代码(未全)
代码一:
Multi 为Button; private void Multi_Click(object sender, EventArgs e)
{
Thread onther = new Thread(new ThreadStart(show));
onther.Start();//如果在红线的两语句设置断点可以执行show方法,而直接运行(f5)则不会执行show方法,直接在f6后在debug目录执行也没有任何题,什么原因?
onther.Abort();
}
private void show()//show 方法
{
MessageBox.Show("Message");
}
///////////////////////////////////////////////////////////////////////////////////////////////
代码二:Multi 为Button; private Thread onther;
private void Multi_Click(object sender, EventArgs e)
{
Thread onther = new Thread(new ThreadStart(show));
onther.Start();
}
private void show()//show 方法
{
MessageBox.Show("Message");
onther.Abort();
}
我的问题:
(我只是想一个线程任务结束后,结束该线程)
1,在代码段一中为什么会有这样的现象?怎样避免?
2,一个线程任务结束后,该怎样结束线程?就像代码二中的方法吗?还是其它方法?请告之,谢谢
代码一:
Multi 为Button; private void Multi_Click(object sender, EventArgs e)
{
Thread onther = new Thread(new ThreadStart(show));
onther.Start();//如果在红线的两语句设置断点可以执行show方法,而直接运行(f5)则不会执行show方法,直接在f6后在debug目录执行也没有任何题,什么原因?
onther.Abort();
}
private void show()//show 方法
{
MessageBox.Show("Message");
}
///////////////////////////////////////////////////////////////////////////////////////////////
代码二:Multi 为Button; private Thread onther;
private void Multi_Click(object sender, EventArgs e)
{
Thread onther = new Thread(new ThreadStart(show));
onther.Start();
}
private void show()//show 方法
{
MessageBox.Show("Message");
onther.Abort();
}
我的问题:
(我只是想一个线程任务结束后,结束该线程)
1,在代码段一中为什么会有这样的现象?怎样避免?
2,一个线程任务结束后,该怎样结束线程?就像代码二中的方法吗?还是其它方法?请告之,谢谢
解决方案 »
- 这个问题解决了给140分 and 一个问题发了200分? 就没人能解决了吗?????高人呢???? and 数据迁移 的正解
- 谁知道那里有 c#中文 api
- 如果有主从报表 子报表只显示哪主报表关联的的一部分记录
- 要用c#做个报表设计器,麻烦各位提供资料或者想法,意见!
- 如何使datagridview不响应鼠标点击
- 比较两个DataTable 的差异 可以用CollectionAssert.AreEqual (ICollection, ICollection) 吗?
- C#问题
- 调用事件,简单问题,送分。
- 急! 在线等! 怎样在使C#在VS2003中生成.exe文件
- 我在安装.net的时候,安装完之后,当打开.net的时候,出现
- C#中如何修改数据表的名称
- 如何使BindingSource不自动调用BeginEdit
其实线程随着执行的方法SHOW() 执行完后,会自动结束的。没必要去主动abort()它
abort()是主要为了去结束没执行完的线程。我开始学时也有这样的困惑,多看看书就好了