using System;
public class ImageConverter
{
public void button1_Click(Object sender, RoutedEventArgs e)
{
string filename=null;
SendImageToPlayer send = new SendImageToPlayer();
//send.ReadImageFile(filename);
Thread t = new Thread(new send.ReadImageFile);
uint ret=send.ErrorCode;
}
}
public class SendImageToPlayer
{
...
public void ReadImageFile(string PfileName)
{
//something
}
...
}
上面显示的代码不起作用。我想在单独的线程中运行ReadImageFie。我怎么能这样做?
答案 0 :(得分:2)
您应该在创建线程后启动它:t.Start()
;
您还应该考虑使用Task Parallel Library。
哦,哦,我刚注意到你想传递一个参数。您可以在启动线程之前在SendImageToPlayer
实例中设置属性,或者将object
传递给ReadImagefile
函数。但实际上,使用TPL,它会更好。
答案 1 :(得分:1)
在SendImageToPlayer类中引入属性FileName
,并在启动线程之前设置它。
using System;
public class ImageConverter
{
public void button1_Click(Object sender, RoutedEventArgs e)
{
string filename = "c:\myfile.bmp";
SendImageToPlayer send = new SendImageToPlayer();
send.Filename = filename;
Thread t = new Thread(send.ReadImageFile);
t.Start();
}
考虑使用BackgroundWorker线程类。它在线程完成时提供事件。
在RunWorkerCompleted事件被触发时检查ErrorCode。