相关疑难解决方法(0)

如何找出使用.NET锁定文件的进程?

我已经看到了几个关于使用HandleProcess Monitor的答案,但我希望能够在我自己的代码(C#)中找到哪个进程正在锁定文件.

我有一种令人讨厌的感觉,我将不得不在win32 API中徘徊,但如果有人已经这样做并且可以让我走上正轨,我真的很感激帮助.

更新

类似问题的链接

c# file-locking

148
推荐指数
5
解决办法
13万
查看次数

Win32:如何获取拥有互斥锁的进程/线程?

我正在处理一个应用程序,在任何给定时间只能存在一个实例.有几种可能性来实现这一目标:

  • 检查一个匹配EXE名称的运行进程(不可靠)
  • 找到主窗口(不可靠,我并不总是有一个主窗口)
  • 创建具有唯一名称(GUID)的互斥锁

互斥选项在我看来是最可靠和优雅的.

但是,在我的第二个实例终止之前,我想向已经运行的实例发布一条消息.为此,我需要一个拥有互斥锁的线程(或进程)的句柄.

但是,似乎没有API函数来获取给定互斥锁的创建者/所有者.我只是俯视它吗?有没有其他方法来到这个线程/进程?还有另一种方法可以解决这个问题吗?

更新:这个人只是向所有正在运行的进程广播一条消息.我想这是可能的,但我真的不喜欢它......

winapi multithreading mutex process single-instance

7
推荐指数
2
解决办法
1万
查看次数