我们有一个项目,其中包含一个Web角色(WCF服务)和一个辅助角色。工作者角色平均使用0.34%的资源。我们希望在单个云服务中使用单个实例托管WCF和辅助角色。如何才能做到这一点?目前,worker角色和WCF服务都使用一个实例。
答案 0 :(得分:0)
您可以使用ThreadedRoleEntryPoint:
public class WebRole : ThreadedRoleEntryPoint
{
...
public override void Run()
{
List<WorkerEntryPoint> workers = new List<WorkerEntryPoint>();
workers.Add(new MyWorkerRole());
base.Run(workers.ToArray());
}
}
您可以使用RoleEntryPoint
,而不是从默认的ThreadedRoleEntryPoint
继承,它允许您传递应作为后台线程启动的工作列表。这样,您可以通过在WebRole中托管一个或多个WorkerRoles作为线程来节省资源。
答案 1 :(得分:0)
Sandrino的答案没有错,但从问题来看,它看起来并不像需要任何线程。我的答案是将所有工作角色中的WorkerRole.cs
移动到网络角色中的WebRole.cs
。