146 lines
5.0 KiB
C#
146 lines
5.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.ServiceProcess;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ServerHelp
|
|
{
|
|
internal class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
var a = new A { name = "ddd" };
|
|
FindDuplicate(a);
|
|
Console.WriteLine(a.name);
|
|
return;
|
|
string _path = @"F:\FEST.txt";
|
|
|
|
Thread thread = new Thread(() =>
|
|
{
|
|
FileStream fs = new FileStream(_path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
|
|
StreamWriter sr = new StreamWriter(fs, System.Text.Encoding.UTF8);
|
|
for (int i = 0; i < 1000; i++)
|
|
{
|
|
sr.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
|
|
sr.Flush();
|
|
Thread.Sleep(100);
|
|
}
|
|
});
|
|
Thread thread2 = new Thread(() =>
|
|
{
|
|
FileStream fs = new FileStream(_path, FileMode.Open, FileAccess.ReadWrite,FileShare.ReadWrite);
|
|
StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8);
|
|
bool wu = false;
|
|
while (true)
|
|
{
|
|
var str = sr.ReadToEnd();
|
|
Thread.Sleep(100);
|
|
if (str.Length > 0)
|
|
Console.WriteLine(DateTime.Now + " ----- " + str.Replace(Environment.NewLine, "").Substring(0, "yyyy-MM-dd HH:mm:ss.fff".Length));
|
|
else
|
|
{
|
|
if (!wu)
|
|
{
|
|
Console.WriteLine("wu");
|
|
wu = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
});
|
|
thread.Start();
|
|
thread2.Start();
|
|
return;
|
|
while (true)
|
|
{
|
|
|
|
|
|
try
|
|
{
|
|
string path = @"C:\wwwroot\App_Data\Server\Server.xcljj";
|
|
while (true)
|
|
{
|
|
var server = ServiceController.GetServices().FirstOrDefault(service => service.ServiceName == "BLV RUCS");
|
|
if (server == null)
|
|
{
|
|
Console.WriteLine("服务不存在!");
|
|
Thread.Sleep(1000);
|
|
continue;
|
|
}
|
|
if (!File.Exists(path))
|
|
{
|
|
Thread.Sleep(1000);
|
|
Console.WriteLine(server.Status.ToString());
|
|
continue;
|
|
}
|
|
int type = int.Parse(File.ReadAllText(path));
|
|
File.Delete(path);
|
|
Console.WriteLine(DateTime.Now.ToString() + (type == 1 ? "启动服务" : (type == 2 ? "重启" : "停止")) + "服务");
|
|
switch (type)
|
|
{
|
|
case 1:
|
|
if (server.Status != ServiceControllerStatus.Running)
|
|
{
|
|
server.Start();
|
|
}
|
|
break;
|
|
case 2:
|
|
if (server.Status == ServiceControllerStatus.Running)
|
|
{
|
|
server.Stop();
|
|
while (ServiceController.GetServices().FirstOrDefault(service => service.ServiceName == "BLV RUCS").Status != ServiceControllerStatus.Stopped)
|
|
{
|
|
|
|
}
|
|
}
|
|
server.Start();
|
|
break;
|
|
case 3:
|
|
server.Stop();
|
|
break;
|
|
}
|
|
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine(ex.ToString());
|
|
}
|
|
}
|
|
Console.ReadLine();
|
|
}
|
|
|
|
public class A
|
|
{
|
|
public string name { get; set; }
|
|
}
|
|
public static void FindDuplicate(A s) { s.name = "sss"; }
|
|
public static int FindDuplicate(int[] arr)
|
|
{
|
|
int index = 0;
|
|
int res = arr[0];
|
|
int count = arr.Length - 1;
|
|
for (int i = 1; i <= count; i++)
|
|
{
|
|
if (res == arr[i])
|
|
{
|
|
break;
|
|
}
|
|
|
|
if (count == i && index != count)
|
|
{
|
|
index++;
|
|
res = arr[index];
|
|
// 下次循环是 index + 1
|
|
i = index;
|
|
}
|
|
}
|
|
return res == arr[0] ? -1 : res;
|
|
}
|
|
}
|
|
}
|