运行另一个类的方法,参数在单独的线程中
本文关键字:单独 线程 参数 另一个 方法 运行 | 更新日期: 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 事件时检查错误代码。