<pre name="code" class="csharp">private Thread t;
public Form1()
{
InitializeComponent();
t = new Thread(Test);
}
private void Test()
{
ShowMsg("abc");
}
private void ShowMsg(string strMsg)
{
//C#中窗体控件默认只能从主线程中访问,如果要从别的线程中访问必须要使用 BeginInvoke 用制定的参数异步制定委托
//获取一个值,该值指示调用方在对控件进行方法调用时是否必须调用 Invoke 方法,因为调用方位于创建控件所在的线程以外的线程中。
if (this.InvokeRequired)
{
Action<string> dg = ShowMsg;
//在创建控件的基础句柄所在线程上,用指定的参数异步执行指定委托。
this.BeginInvoke(dg, strMsg);
}
else
{
txtShow.AppendText(strMsg);
}
}
关于线程:
1.线程是个容器 存储执行到哪一段代码,存储局部变量,存储当前方法指针。
2.多线程就是多个线程读取相同的模板。