0

所以我不是最擅长分析内存泄漏,但据我所知,我已经找到了一个。

我正在使用计时器来检查是否连接了某些东西,当我注释掉计时器时,我的内存泄漏就消失了。

定时器代码很简单,像这样:

private System.Windows.Threading.DispatcherTimer EmbdAttachTimer = new System.Windows.Threading.DispatcherTimer();
EmbdAttachTimer.Tick += new EventHandler(AttachTimer_Elapsed);
EmbdAttachTimer.Interval = new TimeSpan(0, 0, 0, 0, 500);
EmbdAttachTimer.Start();

事件处理程序“AttachTimer_Elapsed”的代码如下:

void AttachTimer_Elapsed(object sender, EventArgs e)
{
bAttached = isUnitAttached(); // simple check of USB connection
UpdateCnctStatText(); // some calls to UI elements to update them with "connected" or "not connected"
}

isUnitAttached() 的代码调用库驱动函数,该函数检查 USB 线另一端的 MSP430 处理器。

bool IsUnitAttached
{ 
   bSuccess = usbI_MSP430.Connect(); 
   if (!bSuccess) 
    { 
       Console.WriteLine("Unable to connect."); 
       return false; 
    } 
    return true; 
}

对此感到非常困惑,我已经查看了所有内容,之前我使用委托来运行 UpdateCnctStatText 函数,但更改为 DispatcherTimer 希望它可以解决我的问题,但没有任何区别。

4

0 回答 0