【发布时间】:2011-02-18 12:15:42
【问题描述】:
我想在一个工作人员角色中执行多项操作。如何创建worker角色的线程?
【问题讨论】:
标签: .net azure azure-worker-roles
我想在一个工作人员角色中执行多项操作。如何创建worker角色的线程?
【问题讨论】:
标签: .net azure azure-worker-roles
您可以在WorkerRole::OnStart() 中添加多个工作人员,如此处所述http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/running-multiple-threads-on-windows.html
public class WorkerRole : ThreadedRoleEntryPoint
{
public override void Run()
{
// This is a sample worker implementation. Replace with your logic.
Trace.WriteLine("Worker Role entry point called", "Information");
base.Run();
}
public override bool OnStart()
{
List<WorkerEntryPoint> workers = new List<WorkerEntryPoint>();
workers.Add(new ImageSizer());
workers.Add(new ImageSizer());
workers.Add(new ImageSizer());
workers.Add(new HouseCleaner());
workers.Add(new TurkHandler());
workers.Add(new Crawler());
workers.Add(new Crawler());
workers.Add(new Crawler());
workers.Add(new Gardener());
workers.Add(new Striker());
return base.OnStart(workers.ToArray());
}
}
internal class Striker : WorkerEntryPoint
{
public override void Run()
{
while (true)
{
// Do Some Work
Thread.Sleep(100);
}
}
}
【讨论】:
简而言之,它与任何其他控制台应用程序没有什么不同。
【讨论】:
Thread.Start 来构建新线程。
两个不同的例子:
http://msdn.microsoft.com/en-us/library/ff803372.aspx(滚动到“实施内部”
http://msdn.microsoft.com/en-us/library/ff966485.aspx(滚动到“实现内部”)。此示例使用 .NET 4.0 中可用的 TPL 进行并行任务调度。
【讨论】: