Solved

c++ threading

Posted on 2008-06-15
5
1,182 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

The object model of .Net can be overwhelming at times – so overwhelming that quite trivial tasks often take hours of research. In this case, the task at hand was to populate the datagrid from SQL Server database in Visual Studio 2008 Windows applica…
Here is a helpful source code for C++ Builder programmers that allows you to manage and manipulate HTML content from C++ code, while also handling HTML events like onclick, onmouseover, ... Some objects defined and used in this source include: …
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 NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.

735 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