Beispiel #1
0
 internal void FileWatcherTimeout()
 {
     Dispose();
     while (!ProcessCopyClient.Copy())
     {
         Thread.Sleep(AutoCSer.Diagnostics.ProcessCopyer.Config.CheckTimeoutSeconds * 1000);
     }
     Environment.Exit(-1);
 }
Beispiel #2
0
 /// <summary>
 /// 文件监视超时处理
 /// </summary>
 internal void OnFileWatcherTimeout()
 {
     if (Interlocked.CompareExchange(ref isFileWatcherTimeout, 1, 0) == 0)
     {
         using (Process process = Process.GetCurrentProcess())
         {
             FileInfo file = new FileInfo(process.MainModule.FileName);
             if (ProcessCopyer.Config.WatcherPath == null)
             {
                 ProcessStartInfo info = new ProcessStartInfo(file.FullName, null);
                 info.UseShellExecute  = true;
                 info.WorkingDirectory = file.DirectoryName;
                 Dispose();
                 using (Process newProcess = Process.Start(info)) Environment.Exit(-1);
             }
             else
             {
                 ProcessCopyClient.Remove();
                 AutoCSer.Threading.ThreadPool.TinyBackground.FastStart(FileWatcherTimeout);
             }
         }
     }
 }