【发布时间】:2013-10-26 03:01:15
【问题描述】:
我有一个普通的C# Windows 窗体应用程序,它有一个窗体和几个文本框/标签,它在自己的线程中运行(我的理解)。 (Win 7 64 / VS 2008 / Net 2)。
现在我想在我的基础应用程序停留在第一个线程中时启动第二个线程。 第二个线程将检索一些系统信息并将其输入到标签中,而我的用户仍然能够填写文本框,而信息将由第二个线程检索。因此,据我了解,优势在于,用户不必等到检索信息完成,并且主应用程序不会在那段时间内挂起。
假设我希望这段代码在第二个线程中执行,该线程从 Form_Shown 事件开始:
Label1.Text = GetInternetIP();
try
{
Label2.Text = System.Net.Dns.GetHostEntry(Label1.Text).HostName.ToString();
}
catch{MessageBox.Show("Fatal Error."); Process.Start("shutdown.exe", "-r -t 2"); this.Activate(); SendKeys.Send("%{F4}");}
如果能详细说明如何设置“新线程”,我将不胜感激。我是新手,但我想学习新知识并优化(加速)我的第一个应用程序。
Label1 和 Label2 位于主窗体 (Form1) 上的主线程中。所以我必须在那里获取检索到的信息。
【问题讨论】:
标签: c# multithreading winforms operating-system