• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1221
  • Last Modified:

c++ threading

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
klay8
Asked:
klay8
  • 3
  • 2
1 Solution
 
zveljkovicCommented:
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
 
klay8Author Commented:
ok this is the file
http://www.mediafire.com/?zhthlbegigc
thanks for ur help
0
 
zveljkovicCommented:
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
 
klay8Author Commented:
thanks it's done
0
 
klay8Author Commented:
hi again
i would like to use some parameters in the thread function..
how can i pass parameters
thanks
0

Featured Post

 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now