winform的线程中断问题

ff167 2006-09-27 01:35:17
winform下的一个FTP程序

我是用线程调用方法的,代码如下

myThread = new System.Threading.Thread(new System.Threading.ThreadStart(upload));

myThread.Start();

然后取消按钮是中止继续传文件,代码如下

fl.cleanup();
//System.Threading.ThreadState ts = myThread.ThreadState;
myThread.Abort();
fl.close();

fl是ftp的类库.

然而,在使用时,按取消后的第一次重新上传,程序是没问题的,但到第二次取消,又读取相同文件以后,就会出错,错误是"该线程无法访问文件",应该是其他线程打开文件后没有释放.

但我也已经使用了abort方法了,那应该怎么释放呢?

而且上边也说了,第一次取消后,再上传同一份文件,程序是可以运行的,为什么?
...全文
267 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Knight94 2006-09-27
  • 打赏
  • 举报
回复
你参看
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx

中关于线程的控制
yr_127 2006-09-27
  • 打赏
  • 举报
回复
把完整的代码粘贴出来嘛
wthorse 2006-09-27
  • 打赏
  • 举报
回复
jf 来了
ff167 2006-09-27
  • 打赏
  • 举报
回复
突然发现还未能结贴.

关键是,上边流没关闭的时候,第二次依然能够上传,到第三次以后程序才报其他进程访问的错.如只访问一个文件,第三次就报错,如访问两个不同的文件,依然是第三次报错.不知所以.
ff167 2006-09-27
  • 打赏
  • 举报
回复
发贴后就解决了...

因为是上传,打开的流没有关闭掉...

之后再加个垃圾回收,解决了...

谢谢
myminimouse 2006-09-27
  • 打赏
  • 举报
回复
帮顶~
yr_127 2006-09-27
  • 打赏
  • 举报
回复
myThread.Suspend();

你把你的完整代码发出来
xiao_p 2006-09-27
  • 打赏
  • 举报
回复
abort好像并不是真正的销毁线程,关于这个的问题已经很多人讨论过了

你搜索一下关于这个问题的帖子
应该有你想要的

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧