如何把生成随机数的代码改成线程??

songsong_kebi 2009-03-04 03:18:20
我编了一个客户端程序,该程序按下“OnButton1”按钮之后,生成并发送15条指令(格式为“The application is r1 and the prior is r2”,其中r1,r2为随机数),代码如下(其中m_strEdit1为CString型的edit box的变量):
void CClientDlg::OnButton1()
{
UpdateData(TRUE);
int x[15],y[15];
CString str;
CString str1;
srand((unsigned)time(NULL));
int m;
for (m=0;m<15;m++)
{
x[m]=rand();
y[m]=x[m]%3+1;
str.Format("%d",x[m]);
str1.Format("%d.\r\n",y[m]);
m_strEdit1 = m_strEdit1 +"The application is "+ str+" and "
+"the prior is "+str1;
}
UpdateData(FALSE);
GetDlgItem(IDC_EDIT1)->RedrawWindow();
Sleep(1000);
OnDeal();
}

void CClientDlg::OnDeal()
{
int nLen;
int nSent;
UpdateData(TRUE);
if (!m_strEdit1.IsEmpty())
{
nLen=m_strEdit1.GetLength();
nSent=m_sConnectSocket.Send(LPCTSTR(m_strEdit1),nLen);
if (nSent==SOCKET_ERROR)
{
AfxMessageBox("信息发送错误!",MB_OK|MB_ICONSTOP);
}
m_strEdit1.Empty();
UpdateData(FALSE);
}
}
现在需要将其改成一个线程,这个线程的功能是不断生成并发送15条带随机数的指令,请问高手们,这个程序怎么改啊??
...全文
59 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qaz2008 2009-03-05
  • 打赏
  • 举报
回复
界面刷新
songsong_kebi 2009-03-04
  • 打赏
  • 举报
回复
谢谢啊,还有一个问题,这样生成以后在edit box看不到这15条指令就直接发送出去了,怎么让它显示一秒再发送出去
liuzxchina 2009-03-04
  • 打赏
  • 举报
回复
第一,可以在ontimer中处理
第二,调用1楼的线程
yangcock 2009-03-04
  • 打赏
  • 举报
回复
第一,编写一个线程函数,可是同本类中的静态函数,也可以是全局函数。如楼上的函数过程

第二,按下“OnButton1”按钮之后创建此线程,
// void CClientDlg::OnButton1()
// {
// AfxBeginThread(myThreadProc); //执行线程函数
zhangzii 2009-03-04
  • 打赏
  • 举报
回复
UINT DwalThread(LPVOID param)
{
CClientDlg* pDlg = (CClientDlg*)param;
int x[15],y[15];
CString str;
CString str1;
srand((unsigned)time(NULL));
int m;
for (m=0;m <15;m++)
{
x[m]=rand();
y[m]=x[m]%3+1;
str.Format("%d",x[m]);
str1.Format("%d.\r\n",y[m]);
pDlg->m_strEdit1 = m_strEdit1 +"The application is "+ str+" and "

int nLen;
int nSent;
UpdateData(TRUE);
if (!pDlg->m_strEdit1.IsEmpty())
{
nLen=pDlg->m_strEdit1.GetLength();
nSent=pDlg->m_sConnectSocket.Send(LPCTSTR(pDlg->m_strEdit1),nLen);
if (nSent==SOCKET_ERROR)
{
AfxMessageBox("信息发送错误!",MB_OK|MB_ICONSTOP);
}
pDlg->m_strEdit1.Empty();
pDlg->UpdateData(FALSE);
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧