中易网

C# 另一个进程正在使用它,怎么才能找到正在使用它的这个进程呢

答案:6  悬赏:30  
解决时间 2021-01-11 16:39
  • 提问者网友:星軌
  • 2021-01-10 21:34
C# 另一个进程正在使用它,怎么才能找到正在使用它的这个进程呢
最佳答案
  • 二级知识专家网友:罪歌
  • 2021-01-10 22:46
楼主您好:

当C#弹出提示或者报错说有“另外一个进程正在使用该文件”时,这个情况一般可以分为:

1、有可能是你自己当前的C#程序代码中调用这个文件结束后,没有及时关闭这个文件的流操作,导致下次调用时,系统会判断到你这个文件没有被关闭,一直处于打开读取状态,就会报这个错误,最好的解决办法是,文件IO读取结束后,及时关闭文件流。

2、也可能是你这个文件本身就是只读的

3、如果你这个程序已经发布,有可能是并发的原因,你这边在使用这个文件时,其他人在系统中也正好在使用这个文件,也会报如上错误,这里可以做一个并发处理,保证文件只能同时被一个人使用。

4、也可能是你程序读取使用这个文件时,在你的电脑上已经被你双击打开了,也会报错。

可能还有其他原因,我想,如果只是你一个人在使用这个程序,很可能就是错误1,自己研究下你的代码,文件读取使用完要及时关闭流。文件IO操作很容易出这个错的,所以要慎重。

呵呵 希望对你有帮主,纯手打,望采纳,谢谢:)
全部回答
  • 1楼网友:玩家
  • 2021-01-11 01:44
不知道!真的不知道!
  • 2楼网友:狂恋
  • 2021-01-11 00:47
首先你思考问题的方法不对。一个文件如果被只读而你还试图修改此文件就会造成这种问题,比如试图用多线程去读写一个txt文件。出现类似情况只能寻找替代方法解决,C#编码无法实现定位是那个线程正在使用该文件,只能实现根据进程名称和进程ID互查,即任务管理器中的exe文件名和pid互查
  • 3楼网友:怙棘
  • 2021-01-11 00:32
如果都是你自己写的程序, 那就是你自己的程序在使用它, 停止, 重新调试
  • 4楼网友:第幾種人
  • 2021-01-10 23:50
请问楼主是在使用vs的情况中遇到这种问题吗?其他的我没有经历过也不知道具体情况,但是相关软件应该也是想通的吧。一般进程名称和你使用的工具或者程序名称有很大相似的地方时可以看出来的,但是有的进程是那种您已经退出了相关程序,但是进程并没有及时的结束,而且任务管理器里还看不到,不是用户问题,即使显示所有也可能看不到,特别是编程中的项目进程经常没有结束导致无法移动文件等操作,因为我使用的有360,在360进程管理可以看到vs的相关进程有说明并没有实际结束,结束了就行了,希望能帮到你
  • 5楼网友:旧脸谱
  • 2021-01-10 23:24
任务管理器——进程
例如你的文件名为:窗体 那么把进程最下面那个 窗体.exe 和窗体.vshost.exe 结束掉 就没事了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息