博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2014.2.24 带参数多线程实例
阅读量:6152 次
发布时间:2019-06-21

本文共 739 字,大约阅读时间需要 2 分钟。

定义全局变量

ParameterizedThreadStart ParaStart; //表示带参数的多线程

Thread[] tds = new Thread[10]; //运行时再实例化

static object objLock = new object(); //多线程锁

 

//运行中

ParaStart = new ParameterizedThreadStart(ReadPic);

for (int i = 0; i < 10; i++) //创建10个线程处理照片

{

  tds[i] = new Thread(ParaStart); //初始化每个线程

  tds[i].Start(i); //执行

}

 

 

public void ReadPic(object num)

{

   int cur = (int)num;

 

   for (int i = 0; i < pts[cur].Count; i++)

  {

      string path = pts[cur][i].ToString();

      string name = path.Substring(path.LastIndexOf("\\") + 1);

 

      lock (objLock) //此多线程锁可防止返回的s与调用的guline不一致的情况发生

      {

      byte[] imageData = TransPIc(path);

      MemoryStream ms = new MemoryStream(imageData);

      Image img = Image.FromStream(ms);

      imgs.Add(img);

      }

   }

}

转载于:https://www.cnblogs.com/mol1995/p/5965042.html

你可能感兴趣的文章
使用native 查询时,对特殊字符的处理。
查看>>
maclean liu的oracle学习经历--长篇连载
查看>>
ECSHOP调用指定分类的文章列表
查看>>
分享:动态库的链接和链接选项-L,-rpath-link,-rpath
查看>>
Javascript一些小细节
查看>>
禁用ViewState
查看>>
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
HTTP缓存应用
查看>>
KubeEdge向左,K3S向右
查看>>
DTCC2013:基于网络监听数据库安全审计
查看>>
CCNA考试要点大搜集(二)
查看>>
ajax查询数据库时数据无法更新的问题
查看>>
Kickstart 无人职守安装,终于搞定了。
查看>>
linux开源万岁
查看>>
linux/CentOS6忘记root密码解决办法
查看>>
25个常用的Linux iptables规则
查看>>
集中管理系统--puppet
查看>>
分布式事务最终一致性常用方案
查看>>