c# 写入文件线程问题

didiaogao 2010-11-10 11:38:19
在本地磁盘中的一个文件夹中有一些jpg文件。我想把这些文件写入到avi视频文件。

现在是用for询问一张一张的写。代码如下


/// <summary>
/// 获得临时截取的屏幕图片,生成avi
/// </summary>
private void AviSaveAs()
{
try
{
FileInfo[] dinfo = DInfo.GetFiles();
Array.Sort<FileInfo>(dinfo, new FIleLastTimeComparer());
for (int i = 0; i < dinfo.Length; i++)
{
//获得图像
Bitmap cache = new Bitmap(m_pictureFileName + "\\" + dinfo[i].ToString());
//由于转化为avi后呈现相反,所以翻转
cache.RotateFlip(RotateFlipType.Rotate180FlipX);
//载入图像
m_aviWriter.AddFrame(cache);
}
}
catch (Exception ex)
{
MessageBox.Show("写入文件失败!");
}
}



图片有的时候很多。大小通常在100k到200k之间。在AddFrame的时候也会慢一点。
我在想用什么方法能快一点。

我有一个思路不知道可以否。
用多线程。一个线程写一部分文件,然后生成一个avi。也就是说几个线程在写最后就生成几个avi。然后最后在总体合并成一个avi 。这样可以吗?? 或者有什么别的方法。谢谢了。
...全文
181 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liye9801 2010-11-12
  • 打赏
  • 举报
回复
可以先把读文件和写AVI 分开线程运行
didiaogao 2010-11-12
  • 打赏
  • 举报
回复
好朋友们 你们还好吗 没人来回答???????
didiaogao 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 phil999 的回复:]
如果你已经有了合并avi文件的函数,那当然可以。不过这本来就是个耗时的操作,如果没有太高的要求,加个进度条也许更好
[/Quote]

我就嫌现在效率低。。。才想有没有jpg直接插入avi。这样就能快一些。。。
phil999 2010-11-11
  • 打赏
  • 举报
回复
如果你已经有了合并avi文件的函数,那当然可以。不过这本来就是个耗时的操作,如果没有太高的要求,加个进度条也许更好
didiaogao 2010-11-11
  • 打赏
  • 举报
回复
在顶一下下。好朋友们,快来啊
  • 打赏
  • 举报
回复
可以,写的时候LOCK一下你要写入的那个文件就行。多线程写入可以显著提高效率
cyjacc915 2010-11-10
  • 打赏
  • 举报
回复
我也想知道呢
didiaogao 2010-11-10
  • 打赏
  • 举报
回复
自己在顶一下。。继续等待。
didiaogao 2010-11-10
  • 打赏
  • 举报
回复
哪位能详细的说一下

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧