将vtkImageData复制到另一个vtkImageData

时间:2020-03-15 13:53:06

标签: multithreading visual-c++ mfc vtk

我在VC ++ / MFC应用程序的主线程中有一个 vtkDICOMReader 。因为在该对象中检索数据可能需要很长时间,所以我想将数据(例如从HDD)获取到单独的线程中。在第二个线程中,我创建另一个 vtkDICOMReader 对象。而这个 vtkDICOMReader 应该从主线程转移到 vtkDICOMReader ...我该怎么做?

种类的伪代码:

CMyDoc::m_pDICOMReader;

在第二个线程中,我使用

创建一个本地 vtkDICOMReader
vtkDICOMReader* pReader = vtkDICOMReader::New();
pReader->ReadData(...);  // could take long time
::PostMessage(AfxGetMainWnd()->GetSafeHwnd(), WMU_TRANSFER, 0, (LPARAM)pReader);

在主线程中:

LRESULT CMyDoc::OnTransfer(WPARAM wParam, LPARAM lParam)
{
    vtkDICOMReader* pReader = (vtkDICOMReader*)lParam;
    // transfer pReader to m_pDICOMReader somehow ...
    m_pDICOMReader = pReader;    // <-- this is the point where I don't know how to transfer data from pReader to m_pDICOMReader
    pReader->Delete();
}

或者,为避免这种转移,我可以从单独的线程 vtkImageData 到主线程 vtkImageData ,我可以直接将数据加载到 vtkImageData 线程可以取消读取输入数据的方式?如果可能的话,我该怎么办?

0 个答案:

没有答案