【发布时间】:2019-02-05 06:14:10
【问题描述】:
我想使用任务在 Windows 窗体中同时显示 4 个视频。我有 4 次视频播放点击。当我单击第一个视频播放按钮时,第一个视频播放,当我单击第二个视频播放按钮时,第二个视频播放和第一个视频继续同时播放。 但是,当我点击第三个视频播放按钮时;第一个视频停止,第二个视频和第三个视频同时播放。同样的,当我点击第四个视频播放按钮时,第二个视频停止,只有第三个和第四个视频同时播放。
我的代码:
private async void play1_Click(object sender, EventArgs e)
{
string inputPath = textBox1.Text;
await Task.Run(() => {
ReadFrames1(inputPath); });
}
和
public void ReadFrames1(string inputPath)
{
using (var vFReader = new VideoFileReader())
{
vFReader.Open(inputPath);
for (int i = 0; i < vFReader.FrameCount; i++)
{
Bitmap videoFrame = vFReader.ReadVideoFrame();
System.Drawing.Image pic = resizeImage(new Bitmap(videoFrame), new Size(305, 267));
pictureBox1.Image = new Bitmap(pic);
}
vFReader.Dispose();
vFReader.Close();
}
}
play2_Click()、play3_Click()、play4_Click() 方法与play1_Click() 相同。 (我的意思是例如play2_Click() 方法调用ReadFrames2() 并显示在PictureBox2。)我错在哪里?
【问题讨论】:
标签: c# winforms task task-parallel-library