我想在如下的线程函数里读取数据:
UINT MyThread(LPVOID pParam)
{
   while(1)
   {
      读取数据库数据;
      处理读取到的数据;
   }
}
若在上面这个线程函数里读取到数据,就将读取到的数据内容写到一个ListBox控件里,应如何做?

解决方案 »

  1.   

    将数据利用ListBox对应的Message将数据添加到ListBox。最好使用WindowsAPI,这样才能保证线程安全
      

  2.   

    在线程中每读一条数据
    就向主线程Post一条消息,然后等待主线程处理该消息(主线程收到该消息后就向ListBox添加数据),等待可以使用事件,WaitForSingleObject函数,以确保主线程处理完了该消息,然后继续下一步
      

  3.   

    那就将上面的问题简化一下:
    全局变量 int i = 0;
    UINT MyThread(LPVOID pParam)
    {
       while(1)
       {
          i++;
          ....
       }
    }
    每执行一次i++后,就将当前i的值显示在ListBox里,谁能给个示例,问题解决立即给分。
      

  4.   

    如果用SendMessage的话 那还不如直接调用ListBox的Add函数
      

  5.   

    线程创建的时候,传递进窗口hWnd
    在线程中
    直接调用m_ListBox.AddString()显示