WCF控制台应用程序的性能问题
本文关键字:性能 问题 应用程序 控制台 WCF | 更新日期: 2023-09-27 18:12:16
有一个托管在。net控制台应用程序中的WCF服务。客户端创建到具有回调的服务的双工通道。它以这种方式调用服务:
var task = Task<object>.Factory.FromAsync(clientRay.Proxy.BeginCalc, clientRay.Proxy.EndCalc, lst_RaySrvcDetails, state);
下面是服务控制台应用程序的Main方法:
static void Main(string[] args)
{
ServiceHost srvcHost = new ServiceHost(serviceInstance, uriBase);
//
//Here the service is hosted
//
while(true)
{
;
}
}
和MyService.cs在下面的方法中接收调用:
public IAsyncResult BeginCalc(List<MBSWaldram.DataAccessLayer.Framework.ServiceDetails> input,
AsyncCallback callback, object state)
{
calcInput = input;
// Create a task to do the work
var task = Task<object>.Factory.StartNew(this.CalcTasks, state);
return task.ContinueWith(res => callback(task));
}
现在的CalcTasks方法,其中实际的任务运行,是显示较低的性能相比,有一个WCF Windows窗体应用程序。我能想到的一个原因是我使用while(true){;}无限循环的方式,这样应用程序就不会终止并等待来自客户端的调用。我不确定这是最好的做法。由于某些原因,我不能使用Windows窗体应用程序。
如果有人能说明为什么这里有性能问题,我将不胜感激。谢谢。
while (true) {;}
确实是不幸的构造。在控制台应用程序中使用Console.ReadLine()
代替。应用程序将等待,直到按回车键