private void IntegrateQueryMemory(IAndroidLogcatTaskResult result) { m_RequestsInQueue--; if (m_RequestsInQueue < 0) { m_RequestsInQueue = 0; throw new Exception("Receiving more memory results than requested ?"); } var memoryResult = (AndroidLogcatQueryMemoryResult)result; // When selecting a new package, there might be still few requests for other packages running on other threads // Ignore those if (m_ExpectedPackageFromRequest == null || m_ExpectedDevice == null) { return; } if (memoryResult.packageProcessId != m_ExpectedPackageFromRequest.processId || memoryResult.deviceId != m_ExpectedDevice.Id || string.IsNullOrEmpty(memoryResult.contents)) { return; } if (memoryResult.contents.Contains("No process found for:")) { m_ExpectedPackageFromRequest.SetExited(); m_Parent.Repaint(); return; } var stats = AllocateMemoryStatistics(); try { stats.Parse(memoryResult.contents); } catch (Exception ex) { stats.Clear(); AndroidLogcatInternalLog.Log(ex.Message); } UpdateGeneralStats(); m_Parent.Repaint(); }