2012-03-27 92 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,它更好。

相關問題