线程学习_简单线程
2015-12-24 22:01:59 访问(2220) 赞(0) 踩(0)
-

-
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_启动_Click(object sender, EventArgs e)
{
try
{
MainThreadStart();
}
catch (Exception err)
{
MsgForm.MsgException(err);
}
}
/// <summary>
/// 线程
/// </summary>
Thread execThread = null;
/// <summary>
/// 启动线程
/// </summary>
protected void MainThreadStart()
{
execThread = new Thread(new ThreadStart(ExecThreadRunProcess));
// 设为后台线程 //
execThread.IsBackground = true;
execThread.Name = "Thread-1";
execThread.Start();
}
/// <summary>
///
/// </summary>
protected void ExecThreadRunProcess()
{
Thread ch = Thread.CurrentThread;
string strName = "";
if (ch != null)
strName = ch.Name;
for (int i = 0; i <= 20; ++i)
{
AddText(strName + ":run == " + i.ToString()
+ " times[" + DateTime.Now.ToString("HH:mm:ss") + "]"
+ System.Environment.NewLine);
System.Threading.Thread.Sleep(2000);
}
AddText(strName + ":end " + DateTime.Now.ToString("HH:mm:ss") + "]"
+ System.Environment.NewLine);
}
/// <summary>
/// 通过委托实现线程对控件RichTextBox设置值
/// </summary>
/// <param name="str"></param>
delegate void AddTextCallback(string str);
/// <summary>
/// 通过委托实现线程对控件RichTextBox设置值
/// </summary>
/// <param name="str"></param>
protected void AddText(string str)
{
if (this.InvokeRequired)
{
AddTextCallback d = new AddTextCallback(AddText);
this.Invoke(d, new object[] { str });
return;
}
RichTextBox rtb = richTextBox_Output;
rtb.AppendText(str);
rtb.Focus();
rtb.Select(richTextBox_Output.TextLength, 0);
rtb.ScrollToCaret();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_线程状态_Click(object sender, EventArgs e)
{
try
{
if (execThread != null)
{
MessageBox.Show(execThread.ThreadState.ToString());
}
}
catch (Exception err)
{
MsgForm.MsgException(err);
}
}
标签:
线程学习_简单线程 


上一条:
下一条:
相关评论
发表评论