C# 多线程 感觉没执行

oLanJieKou 2013-05-14 09:49:22
问题是这样的,总体思想我说下
1、在GOLBAL的application_start定义计时器,1小时处理一次
2、假如共有60条数据,每20条数据用一个线程去处理(foreach循环处理20条数据)
3、当然根据以上计算是3个线程就够了,而且每个线程处理的数据不同,照理说没有任何影响
问题就是感觉代码线程方法中的代码没运行,因为是有个标识字段的,始终没改,还有个问题 线程池是不是运行完方法后就会自动停止了当前线程 或是到下次计时器再来运行的时候 这个线程是如何处理的
...全文
283 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oLanJieKou 2013-05-14
  • 打赏
  • 举报
回复
引用 5 楼 ltcszk 的回复:
debug走一遍
debug走过了 没什么问题 数据源集合都是正确的 而且有定时器 也不太好弄
oLanJieKou 2013-05-14
  • 打赏
  • 举报
回复
引用 4 楼 moonwrite 的回复:
曾经 我写过一个代码 一个线程让list中添加 一个线程foreach移除list中的成员 悲剧发送了~ 后来加了锁~
额 这个不太懂 为什么会加锁了呢 每个线程操作的都是不同的东西 应该不会加锁吧
ltcszk 2013-05-14
  • 打赏
  • 举报
回复
debug走一遍
moonwrite 2013-05-14
  • 打赏
  • 举报
回复
曾经 我写过一个代码 一个线程让list中添加 一个线程foreach移除list中的成员 悲剧发送了~ 后来加了锁~
oLanJieKou 2013-05-14
  • 打赏
  • 举报
回复
求大神来帮小弟解决下this question 一直蛋疼中……
oLanJieKou 2013-05-14
  • 打赏
  • 举报
回复
引用 1 楼 wxl1010 的回复:
要先访问下网站,application_start才会执行,如果不是这个问题,贴个代码吧
System.Timers.Timer bTimer = new System.Timers.Timer();
        bTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEventAuto);
        bTimer.Interval = 300000;
        bTimer.Enabled = true;

public static void TimerTickAuto()
    {
        List<KeywordType> ktList = new List<KeywordType>();
        List<autoAdjustPriceConfig> list = autoAdjustPriceConfigManage.getAutoAdjustPriceConfigList();
        //始终使用5个线程处理集合
        if (list.Count > 5)
        {
            int count = list.Count;
            int size = (count / 20) + (count % 20 == 0 ? 0 : 1);
            for (int i = 1; i <= size; i++)
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(AutoAdjustPrice), getSize(i, list));
            }
        }
        else
        {
            ThreadPool.QueueUserWorkItem(new WaitCallback(AutoAdjustPrice), list);
        }
    }

 public static List<autoAdjustPriceConfig> getSize(int index, List<autoAdjustPriceConfig> aList)
    {
        return aList.Select(t => t).Skip((index - 1) * 20).Take(20).ToList();
    }
wxl1010 2013-05-14
  • 打赏
  • 举报
回复
要先访问下网站,application_start才会执行,如果不是这个问题,贴个代码吧
oLanJieKou 2013-05-14
  • 打赏
  • 举报
回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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