概要
在 Visual C# .NET 中,您可以编写多线程应用程序。本文介绍简单的 Visual C# .NET 应用程序如何创建和管理线程。
要求
下面的列表概括了推荐的硬件、软件、网络结构以及所需的 Service Pack: • Microsoft Windows 2000 或 Microsoft Windows XP
• Microsoft Visual C# .NET
本文假定您熟悉下列主题: • Visual C# .NET 编程
• Visual Studio .NET 集成开发环境 (IDE)
使用线程创建 Visual C# .NET 应用程序
1. 启动 Microsoft Visual Studio .NET。
2. 新建名为 ThreadWinApp 的 Visual C# .NET Windows 应用程序项目。
3. 向窗体添加一个“Button”控件。默认情况下,该按钮名为“Button1”。
4. 向窗体添加一个“ProgressBar”组件。默认情况下,该进度栏名为“ProgressBar1”。
5. 右键单击该窗体,然后单击“查看代码”。
6. 将以下语句添加到文件的开头:
using System.Threading;
7. 为“Button1”添加以下“Click”事件处理程序:
private
void
button1_Click(
object
sender, System.EventArgs e)2

{3
MessageBox.Show("This is the main thread");4
}
8. 将下面的变量添加到 Form1 类:
private Thread trd;
9. 将下面的方法添加到 Form1 类:
private
void
ThreadTask()2

{3
intstp;4
intnewval;5
Random rnd=newRandom();6
while(true)7


{8
stp=this.progressBar1.Step*rnd.Next(-1,2);9
newval =this.progressBar1.Value +stp;10
if(newval >this.progressBar1.Maximum)11
newval =this.progressBar1.Maximum;12
elseif(newval <this.progressBar1.Minimum)13
newval =this.progressBar1.Minimum;14
this.progressBar1.Value =newval;15
Thread.Sleep(100);16
}17
}
注意:这是创建线程的基础代码。此段代码是一个无限循环,它随机增加或减小“ProgressBar1”中的值,然后等待 100 毫秒后再继续。
10. 为“Form1”添加以下 Load 事件处理程序。此段代码将新建一个新线程,使该线程成为后台线程,然后启动该线程。
private
void
Form1_Load(
object
sender, System.EventArgs e)2

{3
Thread trd =newThread(newThreadStart(this.ThreadTask));4
trd.IsBackground =true;5
trd.Start();6
}
确认它可以使用
1. 生成并运行该应用程序。请注意,“ProgressBar1”中的值会随机更改。这是新线程在起作用。
2. 要演示主线程独立于更改“ProgressBar1”值的线程,请单击窗体上的按钮。会出现一个对话框,其中显示下面的错误信息:
This is the main thread
Wait for input.请注意,“ProgressBar1”中的值会继续更改。
疑难解答
在更复杂的应用程序中,确保在访问共享变量时同步多个线程。有关详细信息,请参阅 Visual C# .NET 联机帮助文档中的“lock”语句和相关主题。
参考
有关详细信息,请访问下面的 Microsoft Web 站点或参阅 .NET Framework SDK 文档:
“Thread 类”
http://msdn2.microsoft.com/en-us/library/system.threading.thread(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.threading.thread(vs.71).aspx)
--------------------------------------------------------------------------------
这篇文章中的信息适用于:
• Microsoft Visual C# .NET 2002 标准版
• Microsoft Visual C# .NET 2003 标准版
• Microsoft ADO.NET 1.0
• Microsoft Common Language Runtime (included with the .NET Framework) 1.0
关键字: kbhowtomaster kbthread kbnamespace kbthreadsync KB815804
本文介绍如何在Visual C#.NET中创建和管理线程,包括编写基础代码以实现线程任务,如更新进度条值,并确保主线程与子线程的独立运行。
226

被折叠的 条评论
为什么被折叠?



