我有一个问题:
我创建了一个默认的ServiceReference
[OperationContract]
string GetData(int value);
实现:
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
将ServiceReference添加到新的UWP项目中 (Add Reference Pic.)
在UWP主构造函数中我打电话:
void Test()
{
ServiceReference.Service1Client h = new ServiceReference.Service1Client();
for (int i = 0; i < 10000; i++)
{
var u = h.GetDataAsync(5);
}
}
或者:
async void Test()
{
ServiceReference.Service1Client h = new ServiceReference.Service1Client();
for (int i = 0; i < 10000; i++)
{
var u = await h.GetDataAsync(5);
}
}
问题: WCF服务工作。 UWP-App有效。但过程记忆永远不会减少。 Memory Pic. 垃圾收集器什么都不做。
我打电话的时候:
GC.Collect(2);
GC.WaitForPendingFinalizers();
它改变了#34;没什么&#34; (不会上升太多)。但过程记忆永远不会减少。
在内存不足的设备上,当内存已满时App会崩溃。(raspberry pi 2/3)。
我做错了什么。
Raspberry pi 2/3场景:应用程序在每日循环中调用ServiceReference。该应用程序运行全年。有时应用程序会崩溃,因为内存已满。
答案 0 :(得分:0)
(1)set&#34; ServiceReference.Service1Client h = new ServiceReference.Service1Client();&#34; 到全局参数
或 (2)h.Dispose()最后