class start
{
List<String> list = new List<String>();
public bool jduge(String name) {
bool b=list.Contains(name);
if(b){
list.Add(name);
}
return b;
} static void Main(string[] args)
{
info f1 = new info();
f1.Name = "Sony";
f1.Product = "Japan";
f1.Pass = "SonyJapan";
info f2 = new info();
f2.Name = "Hp";
f2.Product = "Japan";
f2.Pass = "SonyJapan";
start s = new start();
bool b1 = s.jduge(f1.Name);
CreateThred c = new CreateThred(b1,f1.Name);
bool b2 = s.jduge(f2.Name);
CreateThred c = new CreateThred(b2, f2.Name);
bool b3 = s.jduge(f1.Name);
CreateThred c = new CreateThred(b, f1.Name);
}
}class CreateThred
{
static Thread th;
public CreateThred(bool b,String s) {
if (b)
{ th=/*现在我要线程名称是 s的线程,怎么解决?在这里的目的是想让名称为s的线程
重新调用,比如会有(1,2,3,4,1,2,3,4,5)的情况出现*/
}
else {
ThreadStart st = new ThreadStart(WriteInfo);
th = new Thread(st);
th.Name = s;
th.Start();
th.Abort();
}
} public void WriteInfo(){ for (int i = 0; i <= 5; i++) {
Console.WriteLine(i);
Thread.Sleep(1000);
}
}
}
以上想实现的是打断一个已经有的线程,让其重新开始线程内部程序的执行?不知道大家有解决方法么?我卡在这了
bool isRun = false; Process [] allProcess = Process.GetProcesses();
foreach(Process p in allProcess)
{ if (p.ProcessName.ToLower() == RunMC.ToLower())
{
for(int i=0;i<p.Threads.Count;i++)
p.Threads[i].Dispose();
p.Kill();
isRun = true;
}
}
if (isRun) Process.Start(RunMC.ToLower());
start.