【发布时间】:2014-09-05 10:04:06
【问题描述】:
在我的 Windows 应用程序中,我有一个必须每 6 秒运行一次的功能。
所以,我正在使用System.windows.forms.Timer 工具栏
-> 设置它的间隔 6000ms
并在该计时器滴答事件上调用该函数
private void tmrConnectionStatus_Tick(object sender, EventArgs e)
{
CheckClientConnectinStatus();
}
它的工作完美, 但是当我通过下面的函数调用其他 Windows 应用程序时.. 直到或除非我从该应用程序返回到主应用程序,它才会工作
clsLogs.LogEvent(3, "==============Call to PNS ==============");
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = strVendorfile; //Vendors exe
startInfo.Arguments = ""; //CSV file path
clsLogs.LogEvent(1, "SmartTracker to PRINT-N-SPECT:" + System.DateTime.Now);
objProcess = Process.Start(startInfo);
Lable:
Process[] appProc;
string strModName, strProcName;
strModName = Process.GetCurrentProcess().MainModule.ModuleName;
strProcName = "PnS";
appProc = Process.GetProcessesByName(strProcName);
if (appProc.Length > 0)
{
Thread.Sleep(5000);
goto Lable;
}
我想知道是否有任何方法可以使用计时器或其他方法在后台连续工作,即使我专注于其他应用程序。
【问题讨论】:
-
你用的是哪个定时器??
-
正如我在问题中提到的,我正在使用 System.windows.forms.Timer
标签: c# timer backgroundworker background-process