2012-03-27 71 views
1
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

在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。

2

你应该在创建它后开始你的线程:t.Start();

您应该考虑使用Task Parallel Library代替。

哦,哦,我只是注意到你想传递一个参数。您可以在启动线程之前在您的SendImageToPlayer实例中设置属性,或将object传递给ReadImagefile函数。但是,真的,使用TPL,它更好。

相关问题