110,533
社区成员
发帖
与我相关
我的任务
分享
if (chatLog.ThreadState.ToString() != "Stopped")
{
chatLog.Suspend();//挂起线程
if (!closing(strLblName))//判断是否继续,如果是false,继续执行线程
chatLog.Resume();
else
chatLog.Suspend();
}
break;
public static void methed1(object para)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine("运行了methed1方法 " + i);
API f = para as API;
f.MsgAppend("运行了" + i + "次", Color.Khaki);
}
}
public static void methed2(object para)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine("运行了methed2方法 " + i);
API f = para as API;
f.MsgAppend("运行了" + i + "次", Color.Khaki);
}
}
/// <summary>
/// 及时在窗体上现在程序的运行状态
/// </summary>
/// <param name="strMsg"></param>
/// <param name="c"></param>
public void MsgAppend(string strMsg, Color c)
{
this.BeginInvoke(new MethodInvoker(delegate()
{
int selectStart = rchtxt1.TextLength;
rchtxt1.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + strMsg + Environment.NewLine);
rchtxt1.Select(selectStart, rchtxt1.TextLength - 1);
rchtxt1.SelectionColor = c;
}));
}
public partial class API : Form
{
Thread List1;
Thread List2;
Thread List3;
Thread List4;
//窗体加载
public TaoBaoAPI()
{
InitializeComponent();
List1= new Thread(new ParameterizedThreadStart(staticClass.methed1));
List2= new Thread(new ParameterizedThreadStart(staticClass.methed2));
List3= new Thread(new ParameterizedThreadStart(staticClass.methed3));
List4= new Thread(new ParameterizedThreadStart(staticClass.methed4));
}
/// <summary>
/// linklabel 【运行】的单击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void linklabelRun_Click(object sender,EventArgs e)
{
string name = ((LinkLabel)sender).Name;
switch (name)
{
case "lnklbl1":
List1.IsBackground = true;
List1.Start(this);
break;
case "lnklbl2":
List2.IsBackground = true;
List2.Start(this);
break;
case "lnklbl3":
List3.IsBackground = true;
List3.Start(this);
break;
case "lnklbl4":
List4.IsBackground = true;
List4.Start(this);
break;
}
}
/// <summary>
/// linklabel 【暂停】的单击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void linklabelStop_Click(object sender, EventArgs e)
{
string strLblName = ((LinkLabel)sender).Name.ToString();
switch (strLblName)
{
case "lnklbl1_1":
if (List1.ThreadState.ToString() != "Stopped")
{
List1.Suspend();//挂起线程
if (!closing(strLblName))//判断是否继续,如果是false,继续执行线程
List1.Resume();
else
List1.Suspend();
}
break;
case "lnklbl1_2":
if (List2.ThreadState.ToString() != "Stopped")
{
List2.Suspend();//挂起线程
if (!closing(strLblName))//判断是否继续,如果是false,继续执行线程
List2.Resume();
else
List2.Suspend();
}
break;
case "lnklbl1_3":
if (List3.ThreadState.ToString() != "Stopped")
{
List3.Suspend();//挂起线程
if (!closing(strLblName))//判断是否继续,如果是false,继续执行线程
List3.Resume();
else
List3.Suspend();
}
break;
case "lnklbl1_4":
if (List4.ThreadState.ToString() != "Stopped")
{
List4.Suspend();//挂起线程
if (!closing(strLblName))//判断是否继续,如果是false,继续执行线程
List4.Resume();
else
List4.Suspend();
}
break;
}
}
private bool closing(string threadName)
{
DialogResult result = MessageBox.Show("你确认要【暂停】该程序吗?", "暂停提示", MessageBoxButtons.YesNo, MessageBoxIcon.Hand);
if (result == DialogResult.Yes && threadName == "lnklbl1_1")
{
lblWait1.Text = "程序已暂停。";
return true;
}
if (result == DialogResult.Yes && threadName == "lnklbl1_2")
{
lblWait2.Text = "程序已暂停。";
return true;
}
if (result == DialogResult.Yes && threadName == "lnklbl1_3")
{
lblWait3.Text = "程序已暂停。";
return true;
}
if (result == DialogResult.Yes && threadName == "lnklbl1_4")
{
lblWait4.Text = "程序已暂停。";
return true;
}
}