C#解决文件被占用资源,无法删除或修改的方法
private void Print_DetailForm_Shown(object sender, EventArgs e)
{
parameterThread_t = new Thread(new ParameterizedThreadStart(this.openThread_telnet));
//parameterThread_t.IsBackground = false;
parameterThread_t.Start(null);
}
/// <summary>
/// 线程执行的方法,telnet获取数据
/// </summary>
private void openThread_telnet(Object obj)
{
//TelNet_Manage manage = new TelNet_Manage();
try
{
manage.PrintBySockets(null, wy_name, table, progressBar1, label2);
String localPath = Environment.CurrentDirectory + @"\Ne_data\wy\" + wy_name;
if (MessageBox.Show(this,"数据打印完成!\n文件位置:" + localPath + "\n是否进入该目录?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
System.Diagnostics.Process.Start(localPath);
}
this.Close();
System.Threading.Thread.CurrentThread.Abort();//终止当前线程
}
catch(Exception e)
{
MessageBox.Show(this,"打印数据失败!","提示");
System.Threading.Thread.CurrentThread.Abort();//终止当前线程
this.Close();
}
System.Threading.Thread.CurrentThread.Abort();//终止当前线程
}
private void button1_Click(object sender, EventArgs e)
{
//System.Threading.Thread.CurrentThread.Abort();//终止当前线程
if (parameterThread_t != null)
{
parameterThread_t.Interrupt();
parameterThread_t.Abort();
parameterThread_t.Join();
GC.Collect();
}
this.Close();
}
例子:在winform窗口在onshow事件中启动一个线程执行telnet程序。当点击中止按钮(button1_Click)中止线程再继续执行,并且释放当前线程占用的文件资源。
关键:parameterThread_t.Abort();parameterThread_t.Join(); GC.Collect();意思是,把线程Abort()停止线程执行,Join();线程挂起直到线程中止了,然后再GC回收资源。
以上就是C#解决文件被占用资源的全部内容,希望能给大家一个参考,也希望大家多多支持我们。
您可能感兴趣的文章
- 01-10关于ASP网页无法打开的解决方案
- 01-10C#实现多线程下载文件的方法
- 01-10C#文件断点续传实现方法
- 01-10C#实现多线程写入同一个文件的方法
- 01-10C#编程获取资源文件中图片的方法
- 01-10C#实现读取被进程占用的文件实现方法
- 01-10C#删除只读文件或文件夹(解决File.Delete无法删除文件)
- 01-10C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法
- 01-10C#路径,文件,目录及IO常见操作汇总
- 01-10winform实现拖动文件到窗体上的方法
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 01-11ajax实现页面的局部加载
- 01-10SublimeText编译C开发环境设置
- 04-02jquery与jsp,用jquery
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10C#中split用法实例总结
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10delphi制作wav文件的方法