内容摘要 -
全文 -
C#线程的简单操作实例
//Copyright (C) Microsoft Corporation. All rights reserved.
using System;
using System.Threading;
public class Worker
{
// 线程开始时调用以下方法.
public void DoWork()
{
while (!_shouldStop)
{
Console.WriteLine("worker thread: working...");
}
Console.WriteLine("worker thread: terminating gracefully.");
}
public void RequestStop()
{
_shouldStop = true;
}
// Volatile关键词指示编译器该数据成员可以被多个线程访问.
private volatile bool _shouldStop;
}
public class WorkerThreadExample
{
static void Main()
{
// 创建线程对象,此时线程尚未启动.
Worker workerObject = new Worker();
Thread workerThread = new Thread(workerObject.DoWork);
// 启动工作线程.
workerThread.Start();
Console.WriteLine("main thread: Starting worker thread...");
// 循环等待工作线程激活.
while (!workerThread.IsAlive);
// 主线程睡眠一分钟,控制交给工作线程运行:
Thread.Sleep(1);
// 主线程请求结束工作线程:
workerObject.RequestStop();
// 阻塞主线程,直到工作线程对象终止.
workerThread.Join();
Console.WriteLine("main thread: Worker thread has terminated.");
}
}
以上代码在VisualStudio2008环境下运行调试。
|