[英]Count number of instances of C# WPF form application
我试图计算C#WPF默认公共部分类(即Mainwindow类)的实例数。 我尝试使用静态变量来获取计数,但是每次调用该类的实例时,静态变量的计数也会被初始化。 以下是我的代码:-
public partial class MainWindow : Window
{
private static int instances;
string[] word = { "PRMTCMOU", "POLATP", "RMHTOEBDAOR", "EMSOU", "DEKBYRAO", "CEOSPSRO", "YREOMM", "LAERWINEA", "TSRMOFCOI", "TROMINO" };
int i = 1;
bool checkStrings = false;
int score = 0;
private Socket tcpsocket;
TcpClient tcpClient;
public MainWindow()
{
instances++;
InitializeComponent();
this.Loaded += MainWindow_loaded;
this.Closed += MainWindow_Closed;
this.Closing += MainWindow_Closing;
}
}
如果您确实要对单独的实例进行计数(大概是同时运行),则应该启动一个线程,该线程在循环中检查进程列表并修改计数器以反映当前计数。
例:
void CheckProcessThread()
{
while (checkProcesses)
{
counter = System.Diagnostics.Process.GetProcessesByName("MyProc").Length;
Thread.Sleep(1000);
}
}
请注意,我使用“ checkProcesses”变量,因此当您希望程序退出时,可以干净地关闭线程。 另外,此函数调用会占用大量的cpu时间,因此您可能需要增加thread.sleep来降低CPU使用率。
您也可以在计时器(而不是循环线程)上调用此函数。 也有其他方法,但是基本思想是您需要检查定期发生的其他过程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.