Ничего специально не выбирал. Первый же пример который попался в Google
Вот процедура рисования некоего компонента.
Эта процедура отрисовки в ответ на WM_PAINT.
Называется это все to keep Garbage Collector busy.
Для того чтобы отрисовать бордюр аллоцируются:
Pen - 2 шт.
Point - 4 шт.
Т.е. стоит себе каретка безобидно мигает и вся система весело жжужит.
Процессор тащится обрабатывая generations мусора. Все остальное время он пытается сделать что-нить полезное. (Успеть поймать клики в Каки Парлы .NET debuggerе )
Вступить в движение Зеленых что-ли?
Код: Выделить всё
void DrawPanel(object sender, byte state)
{
Panel panel = (Panel)sender;
Graphics g = panel.CreateGraphics();
Pen pen1, pen2;
if(state == 1) //mouse over
{
pen1 = new Pen( SystemColors.ControlLightLight );
pen2 = new Pen( SystemColors. ControlDarkDark);
}
else if(state == 2) //clicked
{
pen1 = new Pen( SystemColors.ControlDarkDark );
pen2 = new Pen( SystemColors.ControlLightLight );
}
else //neutral
{
pen1 = new Pen( SystemColors.ControlDark );
pen2 = new Pen( SystemColors.ControlDark );
}
Rectangle r = panel.ClientRectangle;
Point p1 = new Point( r.Left, r.Top ); //top left
Point p2 = new Point( r.Right -1, r.Top ); //top right
Point p3 = new Point( r.Left, r.Bottom -1 ); //bottom left
Point p4 = new Point( r.Right -1, r.Bottom -1 ); //bottom right
g.DrawLine( pen1, p1, p2 );
g.DrawLine( pen1, p1, p3 );
g.DrawLine( pen2, p2, p4 );
g.DrawLine( pen2, p3, p4 );
}
[/code]