views:

373

answers:

4

Hello, I just started experimenting with Threads and I ran in to a problem I'm not able to solve on my own. I get the error: Error 1 'bool projekt.ftp.UploadFil (object)' has the wrong return type

I use this code to start a thread using the method ftp.Uploadfile:

Thread ftpUploadFile = new Thread(new ParameterizedThreadStart(ftp.UploadFile));
ftpUploadFile.Start(e.FullPath);

And this is the method I used.

public static bool UploadFile(object filename)
{
    string file = Convert.ToString(filename);

    /* blah blah fricken blah snip */

    return false; 

}
+4  A: 

If you read the error message, you'll see that the problem is that the method has the wrong return type.

Specifically, your UploadFile method returns bool, but the ParameterizedThreadStart delegate returns void.

To fix this, change the UploadFile method to return void, and change all of its return xxx; statements to return;.

Alternatively, you could wrap UploadFile in an anonymous method, like this:

Thread ftpUploadFile = new Thread(delegate { ftp.UploadFile(e.FullPath); });
ftpUploadFile.Start();
SLaks
Thanks alot for the help! :) And thank everyone for a quick response!
Morgan.Spagetti
A: 

try

public static void UploadFile(object filename)
Will
+2  A: 

You are not supposed to return anything from your method. Make the return type void - as documented:

public delegate void ParameterizedThreadStart(Object obj)

If you need to know results from your method you need to look into Thread Synchronization.

Maxwell Troy Milton King
A: 

I think ParameterizedThreadStart is expecting a method with a void return type.

IV