Solved

c++ threading

Posted on 2008-06-15
5
1,167 Views
Last Modified: 2013-12-14
hi
i tryed to make a simple application fro threads using a microsoft example:
http://support.microsoft.com/kb/815805
i made the changes to be like this:
delegate void DelegateThreadTask();
private: void ThreadTask()
{
      int stp;
      int newval;
      Random ^rnd=gcnew Random();

      if (progressBar1->InvokeRequired == false)
            {
            stp=this->progressBar1->Step*rnd->Next(-1,2);
            newval = this->progressBar1->Value + stp;

            if (newval > this->progressBar1->Maximum)
                  newval = this->progressBar1->Maximum;
            else if (newval < this->progressBar1->Minimum)
                  newval = this->progressBar1->Minimum;

            this->progressBar1->Value = newval;
            }
      else
            {
                  DelegateThreadTask ^myThreadDelegate = gcnew DelegateThreadTask(this,ThreadTask());
            this->Invoke(myThreadDelegate);      
            
            }
}
private: void repeat()
{      
      while(true)
      {
      ThreadTask();
      Thread::Sleep(100);
      }
}
      private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
      ThreadStart ^myThreadDelegate = gcnew ThreadStart(this, repeat);
    trd = gcnew Thread(myThreadDelegate);
    trd->IsBackground = true;
    trd->Start();
                   }

i still have those errors:
1.error C3364: 'thread1::Form1::DelegateThreadTask' : invalid argument for delegate constructor; delegate target needs to be a pointer to a member function
2.error C3867: 'thread1::Form1::repeat': function call missing argument list; use '&thread1::Form1::repeat' to create a pointer to member
3.error C3350: 'System::Threading::ThreadStart' : a delegate constructor expects 2 argument(s)
can anyone help please
regards
klay
0
Comment
Question by:klay8
  • 3
  • 2
5 Comments
 
LVL 4

Expert Comment

by:zveljkovic
ID: 21790066
Hi. I see that you are using managed c++. Can You post your entire project on some free file hosting service ( i prefer www.mediafire.com ) so i can check your code?
0
 

Author Comment

by:klay8
ID: 21790145
ok this is the file
http://www.mediafire.com/?zhthlbegigc
thanks for ur help
0
 
LVL 4

Accepted Solution

by:
zveljkovic earned 500 total points
ID: 21790287
Hi. I have corrected your code.
Link to the project is
http://www.mediafire.com/?ftlnrjnmgnm

I had some strange compile time error which i solved by commenting out a #include "stdafx.h" and disabling Use Precompiled header from project properties.
The main problem was that pointer to member function of class is not just nameOfFunction but namespace::ClassName::Function. Just see in project.
btw nice effect :D

Hope that helps,
Zlax
0
 

Author Comment

by:klay8
ID: 21790308
thanks it's done
0
 

Author Comment

by:klay8
ID: 21800096
hi again
i would like to use some parameters in the thread function..
how can i pass parameters
thanks
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Update (December 2011): Since this article was published, the things have changed for good for Android native developers. The Sequoyah Project (http://www.eclipse.org/sequoyah/) automates most of the tasks discussed in this article. You can even fin…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now