。netframework 4.8 程序执行后 ,内存不断的增加,过了一夜后,从开始的54M到 1000M,这就是内存泄露吧? 问题出在哪 里?
workID一直为NULL,我的队列是为空的,只是测试这段代码。
public async void StartCommandFunc()
{
IsEnabledStopButton = true;
IsEnabledStartButton = false;
IsDisplayProgressBar = Visibility.Visible;
isRun = true;
DisplayInfos.Clear();
//开始执行 放在 循环内
//await Task.Run(async () =>
// {
while (isRun)
{
try
{
await Task.Delay(1000);
string workID = await _redisStorage.ReadAmsOrderAsync();
//string workID = null;
TransAmsMessage transAmsMessage = new TransAmsMessage();
if (workID != null)
{
//执行
}
else
{
//执行
if (DisplayInfos.Count > 100) DisplayInfos.Clear();
DisplayInfo displayInfo = new DisplayInfo();
displayInfo.orderid = "11111";
displayInfo.account = "11111";
displayInfo.orderTitle = "11111";
displayInfo.messageType = false;
displayInfo.acceptOrgName = "11111";
displayInfo.acceptOrgPhone = "11111";
displayInfo.reslutMessage = "11111";
displayInfo.extStateName = "11111";
displayInfo.nextPartyName = "11111";
DisplayInfos.Add(displayInfo);
}
}
catch
{
}
}
//});
}
///调用的 读取redis 是通过接口实现的
public async Task<string> ReadAmsOrderAsync()
{
string order;
try
{
var csredis = new CSRedis.CSRedisClient(ConnectionString);
order = await csredis.LPopAsync("AMS队列");
csredis.Dispose();
}
catch (Exception)
{
order = null;
}
return order;
}
xmal 内datagrid
<DataGrid
x:Name="DisplayDataGrid"
Grid.Row="1"
Margin="8"
HorizontalContentAlignment="Center"
AutoGenerateColumns="False"
Background="Transparent"
CanUserAddRows="False"
HeadersVisibility="Column"
ItemsSource="{Binding DisplayInfos, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
LoadingRow="DataGrid_LoadingRow"
Style="{x:Null}">
<DataGrid.Columns>
<DataGridTemplateColumn
Width="50"
MinWidth="20"
Header=" 序号"
IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Margin="10,0,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}, Path=Header}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn
Width=" 240"
Binding="{Binding orderid}"
Header="处理工单" />
<DataGridTextColumn
Width="120"
Binding="{Binding reslutMessage}"
Header="处理结果" />
<DataGridTextColumn
Width="80"
Binding="{Binding account}"
Header="帐号" />
<DataGridTextColumn
Width="*"
Binding="{Binding orderTitle}"
Header="工单类型" />
<DataGridTextColumn
Width="*"
Binding="{Binding extStateName}"
Header="工单状态" />
<DataGridTextColumn
Width="80"
Binding="{Binding nextPartyName}"
Header="受理人" />
<DataGridTextColumn
Width="*"
Binding="{Binding acceptOrgName}"
Header="受理单位" />
</DataGrid.Columns>
</DataGrid>
存在内存泄露