C_Sharp 板


LINE

各位好... 最近使用了 ThreadPool... 有一个实作我一直搞不定... ~"~ 我有一个工作要做很多次, 彼此没有关系... 我要用 ThreadPool 来做... 这个 ThreadPool 是在 CodeProject 找来的... 可以等全部工作结束才着进行.. object DoSomething(object Param) {....} ... SmartThreadPool STP = new SmartThreadPool(); // 以下我加入了两个工作到 SmartThreadPool里... 并取得两个执行结果... IWorkItemResult wr1 = STP.QueueWorkItem(new WorkItemCallback(DoSomething),1); IWorkItemResult wr2 = STP.QueueWorkItem(new WorkItemCallback(DoSomething),2); // 用 WaitAll 的 static method 来等全部的执行结束, 传入 IWorkItemResult 的阵列 IWorkItemResult[] Results = new IWorkItemResult[] {wr1, wr2}; SmartThreadPool.WaitAll(Results); 上面是 SmartThreadPool 的范例程式... 我会需要一个 IWorkItemResult 的阵列... 但是今天我的工作数量不一定... 所以我希望写成这样... SmartThreadPool STP = new SmartThreadPool(); List<IWorkItemResult> ResultList = new List<IWorkItemResult>(); foreach(int param in Params) { IWorkItemResult wr = STP.QueueWorkItem(new WorkItemCallback(DoSomething), param); ResultList.Add(wr); } SmartThreadPool.WaitAll(ResultList.ToArray()); 我宣告了一个 IWorkItemResult 的容器, 把每次执行的结果都丢进去... 然後最後再把整个容器丢给 WaitAll... 看起来是很理想... 但是却有一个问题... IWorkItemResult 并没有提供建构式, 所以不能 new List<IWorkItemResult>() 所以我又把程式改写了这种鸟方法... SmartThreadPool STP = new SmartThreadPool(); List<object> ResultList = new List<object>(); // 用 object 来装先 foreach(同上) { IWorkItemResult wr = 同上; ResultList.Add(wr); // 这一行也一样 } IWorkItemResult[] WR = new IWorkItemResult[ResultList.Count]; for(int i = 0; i < ResultList.Count; i++) WR[i] = (IWorkItemResult)ResultList[i]; SmartThreadPool.WaitAll(WR); 在这我改用 object 的容器来装结果... 然後再转型并填入 IWorkItemResult 阵列... 我只是觉得我黄色这部份写得有点笨... 不知有没有更快更方便的写法.. ?? 毕竟我会用到 ThreadPool 的地方还蛮多的, 我希望不要一直出现这种东西... 讲这麽多... 其实我要的就只是物件容器转型啦... ^^" 谢谢大家看完... ^^" __yroj -- KOKIA - ありがとう もしも もう いちど 假使再一次  あなた に あえる なら 遇见你的话  たった ひとこと 只有一句话  つたえたい 想告诉你 http://home.so-net.net.tw/kenyroj/share/arigatou.swf --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.5.97 ※ 编辑: KENyroj 来自: 60.248.5.97 (12/26 10:53) ※ 编辑: KENyroj 来自: 60.248.5.97 (12/26 11:10)
1F:推 liunate:我记得<List>有.ToArray直接转指定型别?(有点忘记) 12/26 14:19
2F:推 huge:IWorkItemResult有任何implement吗? 12/26 15:27
3F:→ huge:没有的话就写一个function做转型的动作如何? (我也想不到@@) 12/26 15:27
4F:→ KENyroj:我目前是写 Function 转型没错啦 XD 12/26 17:10







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP