Need help with ParameterizedThreadStart delegate

I have defined two arrays that I need to pass to a thread:

            Service.isbnAndPrices[] initialISBNRetValue = new Service.isbnAndPrices[100];
            Service.isbnAndPrices[] isbnRetValue = new Service.isbnAndPrices[totalRecordCount];

I have defined the call to start the thread as:

                    ParameterizedThreadStart pts = new ParameterizedThreadStart(getISBNPricingData);
                    Thread t = new Thread(pts);
                    ArrayList al = new ArrayList();
                    al.Add(initialISBNRetValue);
                    al.Add(isbnRetValue);
                    t.Start(al);

and finally, the actual method that I want to run as a separate thread:

        private void getISBNPricingData(object data)
        {
            Cursor.Current = Cursors.AppStarting;
            Service.isbnAndPrices[] initialRetValue = (ArrayList)data[0];
            Service.isbnAndPrices[] retValue = (ArrayList)data[1];


The problem is the last two lines above; I am getting an error stating: Cannot apply indexing with [] to an expression of type object.

How do I fix this?

rmmarshAsked:
Who is Participating?
 
Jaime OlivaresSoftware ArchitectCommented:
try with:

private void getISBNPricingData(object data)
        {
            Cursor.Current = Cursors.AppStarting;
            ArrayList array = (ArrayList)data;
            Service.isbnAndPrices[] initialRetValue = (Service.isbnAndPrices[])array[0];
            Service.isbnAndPrices[] retValue = (Service.isbnAndPrices[])array[1];

0
 
rmmarshAuthor Commented:
Unbelievable!  Thank you soooo much!  Sometimes I just can't figure it out...

One more question:  what is the proper way to stop this thread so I don't have memory leaks?
0
 
Jaime OlivaresSoftware ArchitectCommented:
Do you have any specific requirement with the thread stuff?
Usually you just have to return from your thread function.
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
rmmarshAuthor Commented:
Well, that would work also... but I have a "stop" button to stop the process... do I just use "suspend"?
0
 
Jaime OlivaresSoftware ArchitectCommented:
use Abort().
Have a look for this simple tutorial about .net threads:
http://www.codeproject.com/cs/threads/csharp.asp
0
 
rmmarshAuthor Commented:
Thanks again...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.