Der vollständige reproduzierbare Code befindet sich auf GitHub, der Speicher wird nach dem Start der ausführbaren Datei bald raketen. Der Code befindet sich hauptsächlich in AsyncBlockingQueue.cs Klasse.
Der vollständige reproduzierbare Code befindet sich auf GitHub, der Speicher wird nach dem Start der ausführbaren Datei bald raketen. Der Code befindet sich hauptsächlich in AsyncBlockingQueue.cs Klasse.[code] public async Task DequeueAsync( int timeoutInMs = -1, CancellationToken cancellationToken = default) { try { using (CancellationTokenSource cts = this.GetCancellationTokenSource(timeoutInMs, cancellationToken)) { T value = await this._channel.Reader.ReadAsync(cts?.Token ?? cancellationToken).ConfigureAwait(false); return value; } } catch (ChannelClosedException cce) { await Console.Error.WriteLineAsync("Channel is closed."); throw new ObjectDisposedException("Queue is disposed"); } catch (OperationCanceledException) { throw; } catch (Exception ex) { await Console.Error.WriteLineAsync("Dequeue failed."); throw; } }
private CancellationTokenSource GetCancellationTokenSource( int timeoutInMs, CancellationToken cancellationToken) { if (timeoutInMs Wenn auf diese Weise verwendet wird, hat es Speicherlecks: < /p> try { string message = await this._inputQueue.DequeueAsync(10,cancellationToken).ConfigureAwait(false); } catch(OperationCanceledException){ // timeout } [/code]
Ich habe eine Webanwendung mit Aspnet Core und abp-framework
abp => 7.2.1
dotnet => net7.0
Das Problem ist, dass ich eine Methode habe, die für zwei Jobs verantwortlich ist
Ich verwende diese Methode wiederholt, um die Verbindung zum Computer im lokalen Netzwerk zu überwachen. Wenn der gleiche Test von CMD durchgeführt wird, sind die Ergebnisse stetig und konsistent:...
Ich habe eine Klasse, die verwendet wird, um asynchrones zu arbeiten.
Wenn es um die Entsorgung dieser Klasse geht, muss ich sicherstellen Erstens.
Es scheint, als ob es einige Muster dafür gibt....
Ich habe eine einfache Klasse wie diese, die idisposable implementiert, und so wird sie von einem CA1816 getroffen: Rufen Sie GC.SuppressFinalize korrekt: > public class A : IDisposable
{
// ...
int...
TL;DR: Falsch positiver (?) Speicherverlust im „unbekannten Modul“ in einem großen JNA-Projekt. Verschwindet, wenn ich versuche, ein Minimalbeispiel zu machen. Wie kann ich das Problem beheben?
Ich...