运行另一个类的方法,参数在单独的线程中

本文关键字:单独 线程 参数 另一个 方法 运行 | 更新日期: 2023-09-27 18:29:10

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。我该怎么做?

运行另一个类的方法,参数在单独的线程中

你应该在

创建线程后启动它:t.Start() ;

您还应考虑改用任务并行库。

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

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 线程类。 它在线程完成时提供事件。

在触发 RunWorkerDone 事件时检查错误代码。