hi,<br>i am using cairomm to render a pdf/ps files with great data, i use this function<br>    surface = Cairo::PdfSurface::create(writer,&amp;vectdata,m_rect.Width(),m_rect.Height());<br><br>static cairo_status_t<br>writer (void *closure, const unsigned char *wdata, unsigned int len)<br>
{<br><br>CByteArray* buffer = reinterpret_cast&lt;CByteArray*&gt;(closure);<br>  <br>const int currentLength = buffer-&gt;GetSize();<br>const int newLength = currentLength + len;<br>buffer-&gt;SetSize(newLength,10*len);<br>
<br><br>BYTE*  buff= buffer-&gt;GetData() + currentLength;<br>::CopyMemory(buff,wdata,len);<br>}<br><br>how to speed the process, do i need to lock process here, or how i can put a fire&amp;forget algo herre <br>10x<br>