Я только что начал экспериментировать с Потоками, и я работал в к проблеме, которую я не могу решить самостоятельно. Я получаю ошибку: Ошибка 1 'bool projekt.ftp. UploadFil (объект)' имеет неправильный тип возврата
Я использую этот код для запуска потока с помощью ftp метода. Uploadfile:
Thread ftpUploadFile = new Thread(new ParameterizedThreadStart(ftp.UploadFile));
ftpUploadFile.Start(e.FullPath);
И это - метод, который я использовал.
public static bool UploadFile(object filename)
{
string file = Convert.ToString(filename);
/* blah blah fricken blah snip */
return false;
}
Если вы прочитаете сообщение об ошибке, вы увидите, что проблема в том, что метод имеет неправильный тип возвращаемого значения.
В частности, ваш метод UploadFile
возвращает bool
, но делегат ParameterizedThreadStart
возвращает void
.
Чтобы исправить это, измените метод UploadFile
так, чтобы он возвращал void
, и замените все его операторы return xxx;
на return;
].
Кроме того, вы можете заключить UploadFile
в анонимный метод, например:
Thread ftpUploadFile = new Thread(delegate { ftp.UploadFile(e.FullPath); });
ftpUploadFile.Start();
Я думаю, что ParameterizedThreadStart
ожидает метод с типом возвращаемого значения void
.
Вы не должны ничего возвращать из своего метода. Сделайте возвращаемый тип недействительным - как описано в :
public delegate void ParameterizedThreadStart(Object obj)
Если вам нужно знать результаты вашего метода, вам нужно изучить Синхронизация потоков .