Articles of garbage collection

Obter referências ativas para um object

Eu estou procurando uma API gerenciada / não gerenciada que permitirá que eu descubra quais objects fazem referência a outro object e estão potencialmente impedindo que ele seja coletado como lixo. Essa API pode ter esta aparência: var foo = new Foo(); var bar = new Bar(); bar.Foo = foo; var references = GC.GetReferencesTo(foo); // […]

Por que devo usar IDisposable em vez de usar em c #?

Hoje, eu queria realizar uma operação com um arquivo, então eu criei este código class Test1 { Test1() { using (var fileStream = new FileStream(“c:\\test.txt”, FileMode.Open)) { //just use this filestream in a using Statement and release it after use. } } } Mas na revisão de código, fui solicitado a implementar a interface IDisposable […]

Obter endereço de memory do object .NET (C #)

Eu estou tentando rastrear um bug no tempo de execução mono onde uma variável parece ser alocada para um object válido e, em seguida, é reatribuída posteriormente para um object falso, especificamente //early in code I allocate, fine var o = new object(); // valid allocation // later in code this is called, not fine […]

Como lidar com muitos objects de atualização de forma eficiente em c #?

Estou desenvolvendo um jogo de tiro 2D usando C # e XNA. Eu tenho uma class que chamarei de “bullet” e preciso atualizar muitas dessas instâncias a cada fração de segundo. Minha primeira maneira de fazer isso foi ter uma lista genérica de marcadores e simplesmente remover e adicionar novos marcadores conforme necessário. Mas, ao […]

Como a garbage collection funciona em referências de objects?

Estou confuso sobre o processo de garbage collection em objects. object A = new object(); object B = A; B.Dispose(); Ao chamar Dispose somente na variável B, o object criado não será coletado como lixo, já que o object ainda é referenciado por A. Agora o código a seguir funciona da mesma forma acima? public […]

c # finalizador jogando exceção?

Citação da MSDN: Se Finalizar ou uma substituição de Finalizar lançar uma exceção, o tempo de execução ignora a exceção, finaliza o método Finalizar e continua o processo de finalização. No entanto, se eu tiver: ~Person() { throw new Exception(“meh”); } então isso resulta em uma exceção de tempo de execução? ps Eu sei que […]

Como faço para remover manipuladores de events quando eu terminar com um View e ViewModel, mas não o modelo

Na minha aplicação, estou muitas vezes criando novos modos de exibição e ViewModels, mas persistindo os mesmos modelos. Por exemplo, posso mostrar uma visão simples de uma lista de itens na minha janela principal e ter outra janela com detalhes adicionais de qualquer item em particular. A janela de detalhes pode ser aberta e fechada […]

Qual é o objective de usar GC.AddMemoryPressure com um recurso não gerenciado?

Eu li sobre esse problema no MSDN e no CLR via c #. Imagine que tenhamos um HBITMAP não gerenciado de 2Mb alocado e um bitmap gerenciado de 8 bytes apontando para ele. Qual é o objective de informar ao GC sobre isso com AddMemoryPressure se ele nunca poderá fazer nada sobre o object, já […]

Depuração de vazamentos de memory .NET – como saber o que está mantendo uma referência a quê?

Eu estou trabalhando em um aplicativo .net onde parece haver um memory leaks. Eu sei que o livro-texto responde, que os events devem ser descadastrados, os objects descartáveis ​​devem ser descartados, etc … Eu tenho um equipamento de teste que pode reproduzir o erro. No finalizador de uma certa class eu escrevo para console public […]

Os tipos MakeGenericType / genéricos são coletados pelo garbage?

É bem conhecido no .NET que os tipos não são coletados como lixo, o que significa que se você estiver brincando com f.ex. Reflection.Emit, você tem que ter cuidado para descarregar AppDomains e assim por diante … Pelo menos é assim que eu costumava entender como as coisas funcionam. Isso me fez pensar se os […]