强度计挂着

时间:2012-10-09 05:10:00

标签: visual-studio-2010 visual-c++ memory-leaks

我做了一个显示最大强度的测量仪。为了制作测量仪,我首先在一个面板的背景中放置一个拨号器,然后在该面板上的pictureBox上绘制针,并且在具有透明背景的pictureBox上。

我的代码如下......

private: System::Void FocusExposure_Load(System::Object^  sender, System::EventArgs^  e) {
                 th = gcnew Thread(gcnew ThreadStart(this,&FocusExposure::UpdateIntensity)); 
                th->Start();            
             }

void UpdateIntensity()
     {
         int intensity=0;
        Intensity_Values data;
         while(1)
         {
         data = ReadImage(cameraBuffer);
                 if(count == 1)
                 {
                     count++;
                    label14->Text =  Convert::ToString(data.Max);
                 }
             label7->Text =  Convert::ToString(data.Max);
             label8->Text =  Convert::ToString(data.Min);
             label9->Text =  Convert::ToString(data.Avg);
             label10->Text =  Convert::ToString(data.Max_Min);
            draw_Intens( data.Max);
         }
     }
private: void draw_Intens(int intensity)
             {

                 this->pictureBox1->Refresh();
                 double const PI = 3.14159265358979323;
                 float degree=angle_array[intensity]*PI/180;
                 circumPoint xy= cordinate_point(degree);

                 Graphics ^ graphics = pictureBox1->CreateGraphics(); 
                 SolidBrush^ shadowBrush = gcnew SolidBrush( Color::Blue );
                     Pen^ penCurrent = gcnew Pen(Color::Blue,3);
                                    graphics->FillEllipse(shadowBrush, 93, 93,14, 14);
                                    graphics->DrawLine(penCurrent, Point(100, 100), Point(xy.x, xy.y));
                                    delete penCurrent;
                                    delete shadowBrush;
                                    delete graphics;
            }
circumPoint cordinate_point(float degree)
         { 
             circumPoint pointxy;
             pointxy.x =  100+redius * cos(degree);
             pointxy.y =  100+redius * sin(degree);
             return pointxy;
         }

angle_array 是一个数组double angle_array[]={126.000000,126.070313,126.140625,...,414.000000},具有4097角度值,使用这些值将针旋转。

ReadImage(cameraBuffer)是一个正在返回的函数 马克斯, 敏 平均, MAX_MIN 强度值。

Intensity_Values 是Max Min Avg Max_Min值的结构。

typedef struct {
   int  Max;
   int  Min;
   int  Avg;
   int Max_Min;
} Intensity_Values;

我的指标是这样的......

enter image description here

左侧具有最小强度0并且右侧具有最大强度值4096。

现在我的问题是,当我运行我的应用程序时,它会启动,并且在2 3秒后它会挂起或者可以说停止工作。我认为问题可能是内存泄漏,但我不知道问题出在哪里。

请帮我摆脱这个问题。

任何帮助将不胜感激。

感谢。

0 个答案:

没有答案