6

我刚开始尝试使用 Threads,但遇到了一个我自己无法解决的问题。我收到错误:错误 1 ​​'bool projekt.ftp.UploadFil (object)' has the wrong return type

我使用这段代码使用 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; 

}
4

5 回答 5

8

如果您阅读错误消息,您会发现问题在于该方法的返回类型错误。

具体来说,您的UploadFile方法返回bool,但ParameterizedThreadStart委托返回void

要解决此问题,请将UploadFile方法更改为 return void,并将其所有return xxx;语句更改为return;

或者,您可以包装UploadFile一个匿名方法,如下所示:

Thread ftpUploadFile = new Thread(delegate { ftp.UploadFile(e.FullPath); });
ftpUploadFile.Start();
于 2010-02-16T14:30:27.547 回答
2

像这样使用任意委托:

bool result = false;    
ThreadStart s = delegate
{
    result = UploadFile(ftp.UploadFile);
};
Thread t = new Thread(s);
s.Start();
s.Join();
// now you have your result    
if (result)
{ // do something useful
}
于 2011-02-11T09:39:39.423 回答
2

你不应该从你的方法中返回任何东西。使返回类型为 void - 如记录所示

public delegate void ParameterizedThreadStart(Object obj)

如果您需要了解方法的结果,则需要查看Thread Synchronization

于 2010-02-16T14:31:14.097 回答
0

尝试

public static void UploadFile(object filename)
于 2010-02-16T14:30:51.773 回答
0

我认为ParameterizedThreadStart期待一个具有void返回类型的方法。

于 2010-02-16T14:32:21.687 回答