|
만약 FloodFill을 구현하는 Thread의 갯수를 상황에 맞게
변수로 조절하고 싶으면 Thread선언을 배열로 하면 될 것 같은데
문제는 Thread의 Execute에서
n개의 FloodFill함수를 어떻게 동시에 실행 할 수 있는지요?
예를 들어 FloodFill로 영역을 채우는 함수는
for (int i=0;i<N;i++)
{
...
Canvas->FloodFill(EX, EY, Canvas->Pen->Color, fsBorder);
}
로 되어 있었는데,
이를
함수 1은
for (int i=0 ; i<N/10 ; i++)
{
...
Canvas->FloodFill(EX, EY, Canvas->Pen->Color, fsBorder);
}
함수2는
for (int i=N/10 ; i<2*N/10 ; i++)
{
...
Canvas->FloodFill(EX, EY, Canvas->Pen->Color, fsBorder);
}
...
함수 10은
for (int i=9*N/10 ; i<10*N/10 ;i++)
{
...
Canvas->FloodFill(EX, EY, Canvas->Pen->Color, fsBorder);
}
으로 되어 있고 (함수 1~10은 상항에 따라 1~20 또는 1~40도 될 수 있습니다.)
이를 동시에 실행 시키고 싶습니다.
김태선 님이 쓰신 글 :
: 쓰레드 예제는 빌더의 examples 밑에 간결하게 잘되어 있습니다.
: 구현하실려는 목적이면 간단하니 어렵지 않을 것입니다.
: 단 쓰레드는 쓸데 주의해야할 사항들이 있는데,
: 전 시삽님이신 박지훈님의 글을 이 사이트에서 찾아서 보시면 많은 도움이 될 것입니다.
:
: 그럼...
:
: 김용수 님이 쓰신 글 :
: : 안녕하세요. 고수님들의 조언을 바랍니다.
: :
: : 하는 일은 PaintBox에 moveto lineto로 약 7000개
: : 정도의 다각형을 만들고 FloodFill로 각기 다른 색으로
: : 그 다각형을 채우는 것입니다.
: :
: : 구현을 되었는데, 문제는
: :
: : FloodFill로 약 7000개의 다각형 색을 칠하다 보니
: : 속도가 너무 느려져서 7000개를 다 채우는 시간이
: : 약 10분 정도 걸리게 된다는 점입니다.
: :
: : 예전에는 OPENGL로 그렸더니 이런 문제가
: : 없었는데 이번에는 PaintBox로 그렸더니
: : 이런 문제가 나오는 군요.
: :
: : 다시 OPENGL로 하자니 시간과 여러가지 문제가
: : 있어 그냥 해결하고자 하다가 꽁수로
: :
: : Thread를 이용해서
: : 1~100까지는 1번 Thread로,
: : 101~200까지는 2번 Thread로 ,
: : ...
: : ???~7000까지는 ?번 Thread로 ,
: : 동시에 FloodFill로 그리면 되지 않을까 생각은 드는데
: :
: : 이런 thread 는 어떻게 선언하고 사용해야 되는지 예제나
: : 조언을 주실 수 있겠는지요??
|