Why are threads so scary?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jeffro

    Why are threads so scary?

    I'm trying to learn threads so I created a simple dialog based MFC app
    with an edit box, a Run button and an Exit button. Run starts a loop
    that continually updates the edit control. How do I modify the code so
    that the dialog responds to events? That is, so the Exit button will
    work. Do I even need threads in this situation?

    void CThreadPractice Dlg::OnBnClicke dRun()
    {
    int i = 0;
    while (1) {
    if (i >= 10) {
    i = 0;
    }
    char intString[2];
    _itoa(i,intStri ng,10);
    CString msg = CString(intStri ng);
    m_edit1.SetWind owTextW(msg);
    i++;
    Sleep(500);
    }
    }

    void CThreadPractice Dlg::OnBnClicke dExit()
    {
    exit(0);
    }


    ----== Posted via Pronews.Com - Unlimited-Unrestricted-Secure Usenet News==----
    http://www.pronews.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
    ---= - Total Privacy via Encryption =---
  • imuro

    #2
    Re: Why are threads so scary?

    On Mar 13, 1:14 pm, Jeffro <jeffadamc...@h otmail.comwrote :
    I'm trying to learn threads so I created a simple dialog based MFC app
    with an edit box, a Run button and an Exit button. Run starts a loop
    that continually updates the edit control. How do I modify the code so
    that the dialog responds to events? That is, so the Exit button will
    work. Do I even need threads in this situation?
    >
    void CThreadPractice Dlg::OnBnClicke dRun()
    {
    int i = 0;
    while (1) {
    if (i >= 10) {
    i = 0;
    }
    char intString[2];
    _itoa(i,intStri ng,10);
    CString msg = CString(intStri ng);
    m_edit1.SetWind owTextW(msg);
    i++;
    Sleep(500);
    }
    >
    }
    >
    void CThreadPractice Dlg::OnBnClicke dExit()
    {
    exit(0);
    >
    }
    >
    ----== Posted via Pronews.Com - Unlimited-Unrestricted-Secure Usenet News==----http://www.pronews.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
    ---= - Total Privacy via Encryption =---

    Hi Jeffero,

    I can see that your thread is running all the time since it is an
    infinite loop. You are right that the UI and your internal program
    should be on different thread so the UI is responsive even though your
    loop is running. The exit button should stop the loop (thread) and
    wait to see if the thread is finished, if it is then you exit
    gracefully or terminate thread and exit. Hope this helps :)


    Cheers,
    Chris

    Comment

    Working...