求一个C#程序

来源:百度知道 编辑:UC知道 时间:2024/05/30 04:33:56
编写一个程序,该程序只能启动一个实例。在运行第二个实例的时候,会打印一句话:该进程已经启动了一个实例,然后退出运行。
基本思路是这样的:利用System.Diagnostics.Process类的静态函数,获取当前正在运行的所有进程的信息。若发现与本程序具有相同特征的进程超过1个,就打印出错信息,并结束当前进程。
最好是利用程序集的attribute存放特定信息,然后用Assembly类对象的GetCustomAttributes()获取该信息进行判断。
利用应用程序名进行判断不是一个好的方法。
需要详细代码,谢谢~ 回答好的话,有重大加分!

获取进程列表

Process[] processes = System.Diagnostics.Process.GetProcesses();
然后放一timer空间时刻监视有无新进程,有的话就和processes比较有无重复

”简单工程模式就可以,非要判断进程?“
说错了,sorry,是单件模式!
public sealed class Singleton
2{
3 static Singleton instance=null;
4
5 Singleton()
6 {
7 }
8
9 public static Singleton Instance
10 {
11 get
12 {
13 if (instance==null)
14 {
15 instance = new Singleton();
16 }
17 return instance;
18 }
19 }
20}
这个一般就够用,如果多线程,就要用lock,给你个连接,你需要就去看看。